这是我的.htaccess
文件:
Options +FollowSymLinks
Options -Multiviews
RewriteEngine On
RewriteBase /website/
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [S=20]
RewriteRule ^(.*)$ $1.php
RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)(/)?$ index.php?occ=$1&cat=$2
现在这两行并不起作用,例如:
如果我去contact.php,我会输入我的网址:localhost / website / contact 它会起作用
但是,如果我想通过在我的网址:localhost / website / occasion / category中输入这个来访问location / website / index.php?occ = occasion& cat = category,它只会在我删除第一个重写规则时起作用
但我不能再去localhost / website / contact
了我在这里想念的是什么?
答案 0 :(得分:5)
您的问题是您的订单。
/website/occasion/category
首先被重写为/website/occasion/category.php
,然后无法匹配第二条规则。
RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)(/)?$ index.php?occ=$1&cat=$2 [L]
RewriteRule ^(.*)$ $1.php
更改顺序并将[L]
参数添加到规则(成功执行后停止执行后续规则)应该可以解决问题。
答案 1 :(得分:0)
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^site_1/(.*)$ site_1/index.php?/$1 [L]
RewriteRule ^site_2/(.*)$ site_2/index.php?/$1 [L]
在网站中,您不会拥有1000个网站,您可以声明您的愿望链接和文件夹名称 例如 如果您的结构是
/home/site1, /home/site2
和链接就像http://yourdomain.com/medical& http://yourdomain.com/entertainment