用.htaccess重写网址

时间:2014-09-13 19:49:54

标签: .htaccess mod-rewrite url-rewriting

我正在尝试使用.htaccess重写页面网址。 我想转换像这样的链接(mysite.com/page.php - > mysite.com/page)

这是我在之前具有相同要求的网站中使用的代码

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。

1 个答案:

答案 0 :(得分: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] 已修复应如下所示:

{{1}}