我正在尝试创建一个.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很新。提前感谢任何指导
答案 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部分。