2

这是我的.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,它会工作

但是,如果我想通过在我的 url 中键入以下内容来访问 location/website/index.php?occ=occasion&cat=category: localhost/website/occasion/category 它只有在我删除第一个重写规则时才有效

但后来我不能去本地主机/网站/联系人了

我在这里想念什么?

4

2 回答 2

5

您的问题是您的订单。

/website/occasion/categoryfirst 被重写为 be /website/occasion/category.php,然后无法匹配第二条规则。

RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)(/)?$ index.php?occ=$1&cat=$2 [L]
RewriteRule ^(.*)$ $1.php

更改顺序并将[L]参数添加到规则(成功执行后停止执行后续规则)应该可以解决问题。

于 2013-05-16T11:20:44.357 回答
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

于 2014-02-22T02:44:59.713 回答