2014-09-13 19 views
0

我想用.htaccess重寫頁面的URL。 我想改變這樣的鏈接(mysite.com/page.php - > mysite.com/page)用.htaccess重寫url's

這是我在以前的網站使用相同的要求代碼

RewriteEngine on 
RewriteCond /%{REQUEST_FILENAME}.php -f 
RewriteRule ^([a-zA-Z0-9_-\s]+)/$ /$1.php 

但是,當我嘗試訪問mysite.com/page時,它使用了404頁面,其中mysite.com/page.php將顯示該頁面。

任何人都可以解釋,如果我錯過了某個地方的設置?我已經放在.htaccess文件在站點根目錄和644

+0

嘗試刪除'''/'''在的RewriteCond的開始? – MrTux 2014-09-13 19:55:59

回答

1

而不是使用%{REQUEST_FILENAME}它的方式你有一個不必要的/那裏,我建議你使用%{DOCUMENT_ROOT}/$1\.php權限設置,這裏有一個例子:

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase/

## To internally redirect /anything to /anything.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f 
RewriteRule ^([^/]+)$ $1.php [L] 

另外在你的規則,你有這將再次引起你的麻煩,你想趕上/page/$

你可以讓它/?使/可選。

.htaccess固定的應該是這樣的:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^([a-z0-9_-\s]+)/?$ /$1.php [NC,L]