IIS 7 URL-omskrivningsregel / Begræns brugeranmodning til en bestemt mappe / fil / filtyper

Jeg har forsøgt at oprette et underdomæne fra en mappe (lavet af .htaccess), der skal bruges som hovedsiden, der starter som http://domain.com/sub/2/3/4.html og bliver til http://sub.domain.com/2/3/4.html.

Mappesystemet fungerer som:

www\sub\2\3\ 

i www der er en index.html og i undermappen er der en anden index.html.

Jeg har i øjeblikket denne kode, som jeg fandt på et andet websted:

Options -Indexes +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^domain.com [NC] RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] RedirectMatch 301 ^/sub/(.*)$ http://sub.domain.com/$1 

Det lykkes med at ændre domænestien til http://sub.domain.com/, men det lykkes ikke at ændre den side, der vises fra indekset i www katalog til indekset i underkataloget.

Det er heller ikke lykkedes at tillade at åbne andre sider, dvs. ikke tillade sub.domain.com/2/3/4.html. Hvis nogen kan give råd, ville det blive meget værdsat.

Jeg har fundet en fantastisk kode til .htaccess, der konverterer en hvilken som helst mappe i det primære www-bibliotek til underdomæner, f.eks. www / somefolder bliver til somefolder.domain.com, du kan også indstille det, så ethvert bibliotek i et bestemt bibliotek bliver et underdomæne, f.eks. www / folder / somefolder bliver til somefolder.domain.com

koden nedenfor er indstillet til at omdirigere biblioteker inde i en bestemt mappe

Options +FollowSymLinks -Multiviews RewriteEngine on RewriteBase / # # Canonicalize the hostname RewriteCond www.%{HTTP_HOST} ^(www)\.(example\.com) [OR] RewriteCond %{HTTP_HOST} ^www\.([^.]+)\.(example\.com) [OR] RewriteCond %{HTTP_HOST} ^([^.]+)\.www\.(example\.com) [OR] RewriteCond %{HTTP_HOST} ^([^.]+)\.(example\.com). [OR] RewriteCond %{HTTP_HOST} ^([^.]+)\.(example\.com):[0-9]+ RewriteRule (.*) http://%1.%2/$1 [R=301,L] # # If subdomain is NOT www RewriteCond %{HTTP_HOST} !^www\.example\.com [NC] # Extract (required) subdomain to %1 RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com$ # Rewrite if requested URL resolves to existing file or subdirectory in /subdomains// path RewriteCond %{DOCUMENT_ROOT}/subdomains/%1/$1 -f [OR] RewriteCond %{DOCUMENT_ROOT}/subdomains/%1/$1 -d RewriteRule (.*) /subdomains/%1/$1 [L] 

skift blot 'example.com' til dit domæne, f.eks. 'domain.com' skal du sørge for ikke at fjerne nogen af ​​de andre symboler bortset fra prikker. i øjeblikket vil bibliotekerne i mappen kaldet 'underdomæner' blive til et underdomæne, f.eks. www / underdomæner / blog bliver til 'blog.domæne.com' for at indstille det til bare at ændre mapperne i www-biblioteket til underdomæner, f.eks. www / blog bliver til 'blog.domain.com'

hvis du automatisk vil videresende til et underdomæne, f.eks. blog.domain.com skal du placere dette i slutningen af ​​den anden kode

RewriteCond %{HTTP_HOST} ^example\.com$ [NC] RewriteRule ^(.*)$ http://blog.example.com/$1 [R=301,L] 

håber dette fungerer for alle, det tog mig aldre at finde en løsning på dette forfærdelige problem tak Reblerebel

Du skal konfigurere en virtuel apache-vært til sub.domain.com med www/sub som sin DirectoryRoot.

  • hvordan ville du gøre det?
  • httpd.apache.org/docs/2.0/vhosts/examples.html
  • så lægger jeg det i .htaccess-filen, fordi jeg ikke er i stand til at redigere andre præferencer
  • Nej, dette er ikke en .htaccess-konfiguration. Du skal redigere apache's apache2.conf eller httpd.conf. Du bliver nødt til at bede din administrator om at gøre det derefter.
  • Jeg bruger i øjeblikket gratis slange, som jeg kan FTP ind i, så ville det gå ind i www-kataloget?

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?