htaccess将url页面重写为文件夹

时间:2014-02-04 11:26:35

标签: php apache .htaccess url mod-rewrite

我正在尝试创建一个.htaccess页面,可以将我的网址从www.site.com/about.php更改为/ About /。所有页面当前都在根目录中,所以我想为多个页面执行此操作。到目前为止,我在我的htaccess文件中有这个:

RewriteEngine On  

RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{SCRIPT_FILENAME} !-l 

RewriteRule ^(.*)$ about.php [QSA,L]

这似乎只是将index.php以外的所有页面更改为about页面。导航中的超链接现在转到/ About /,/ Contact / etc,但我无法解决我需要更改的内容,以使链接不再显示停止显示about.php。

任何帮助都会很棒,因为我对PHP很新。提前感谢任何指导

1 个答案:

答案 0 :(得分:1)

您正在使用

匹配所有请求
^(.*)$

并将它们发送到'about.php'。

您要做的是匹配请求,然后使用该匹配来构建文件名:

# Get the Request
RewriteCond %{REQUEST_FILENAME} ^(.*)$
# Check that the file exists, using the match from above (%1)
RewriteCond %1\.php -f

RewriteRule ^(.*)$ $1.php [QSA,L]

这是一种非常基本的方法。您可能希望增强规则,使其仅匹配第一个URL部分。