2016-04-28 49 views
-3

我創造我的網站var/www/mysite/的路徑.htaccess文件刪除我的文件「.PHP」,但不工作刪除.PHP與的.htaccess

# Apache Rewrite Rules 
<IfModule mod_rewrite.c> 
Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

# Add trailing slash to url 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$ 
RewriteRule ^(.*)$ $1/ [R=301,L] 

# Remove .php-extension from url 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^([^\.]+)/$ $1.php 

# End of Apache Rewrite Rules 
</IfModule> 

這是我第一次做到這一點,如果我做得不好,或者這是否在正確的地方,所以我來找你。

+0

檢查RewriteLog。在無條件地總是附加一個斜線後,'RewriteCond /input/path/.php -f'將永遠不匹配。 – mario

+0

@anubhava例如,我有about.php,重定向但無法找到。但如果我重定向到about.php的作品。 – hateful

+0

www.mysite.com/about並失敗,但www.mysite.com/about.php其作品! @anubhava – hateful

回答

0

試試這個代碼在網站根目錄的.htaccess:

Options +FollowSymLinks 
RewriteEngine On 

# Add trailing slash to url that is not a file 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*?[^/])$ %{REQUEST_URI}/ [L,R=302,NE] 

# Add .php extension from urls internally 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/?$ $1.php 
+0

我剛剛建立了我的Ubuntu服務器,我想我沒有正確配置Apache,因爲你給我的htaccess,如果他們在我有另一臺服務器上工作,但讓我瘋狂大聲笑conf conf apache – hateful