2014-09-13 20 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]