2016-05-19 10 views
1

Ich bewegte vor kurzem Dev-Sites und auf jeder Dev-Site war das Projekt in einem Unterverzeichnis (dh: www.site.com/dev_site). Als ich zu einer neuen Entwickler-Site wechselte (zB: www.site2.com/dev_site), würde keiner der Links auf der Seite richtig funktionieren, es sei denn, sie enthielten die Erweiterung .php. So sagt ein Link wie www.site2.com/account einen 404-Fehler werfen würde:Silently Dateierweiterung in Unterverzeichnis w/htaccess

Das angeforderte URL/dev_site/Konto auf diesem Server nicht

Die bisherige .htaccess-Datei auf dem gefunden wurde alte Dev-Site, die gut funktionierte, wurde stillschweigend .php am Ende jeder URI hinzugefügt und nicht in der URL angezeigt.

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f 
    RewriteRule ^(.*)$ $1.php [L,QSA] 
</IfModule> 

Ich weiß, dass mod_rewrite ist, weil ich Müll in der Datei setzen und es wirft ein 500.

ich auch versucht:

<IfModule mod_rewrite.c> 
    Options All -Indexes -MultiViews 
    RewriteEngine on 
    RewriteBase /dev_site/ 

    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{DOCUMENT_ROOT}/dev_site/$1\.php -f [NC] 
    RewriteRule ^(.+?)/?$ $1.php [L] 
</IfModule> 

Und alles, was einen Wurf tat, war 500 Fehler. Und das Entfernen von würde mich nur zu dem zuvor erwähnten Fehler 404 nicht gefunden zurückbringen.

Antwort

0

Ich konnte dies aus einer Antwort auf behebt ich hier gefunden: https://stackoverflow.com/a/30487642/2122300

ich es verändert haben aussehen:

<IfModule mod_rewrite.c> 
    Options +FollowSymLinks -MultiViews 

    RewriteEngine On 
    RewriteBase /dev_site/ 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule (.*) /dev_site/$1.php [L] 
</IfModule>