问题描述
在大量研究stackoverflow之后,我无法弄清楚。 我的网站结构如下
index.PHP
contact.PHP
about.html
forum(dir)
- index.PHP
- thread.PHP
我希望我的htaccess做什么
- 删除.PHP和.html扩展名,例如:访问联系人页面时,网址应为
www.domain.com/contact/
和www.domain.com/about/
- 用户访问论坛时,网址应为
www.domain.com/forum/thread/10004000/
而不是www.domain.com/forum/thread?id=10004000
我不确定该如何解决。我能够删除扩展名,但是在/
“正斜杠”部分中失败了
这是我的.htaccess部分
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html [NC,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.PHP -f
RewriteRule ^(.*)$ $1.PHP [NC,L]
解决方法
尝试以下代码删除php扩展名,与您可以添加的html相同
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^forum/thread/(.+) /forum/thread?id=$1 [L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
,
尝试此演示mod_rewrite
link