Apache .htaccess:在url中使用两个或多个斜杠时排除特定目录
简言之:我正在开发一个网站,在这个网站上,消费者可以比较多家分公司的公司(服务提供商)。因此,我们使用最多3个“目录”的搜索引擎优化友好url:Apache .htaccess:在url中使用两个或多个斜杠时排除特定目录,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,简言之:我正在开发一个网站,在这个网站上,消费者可以比较多家分公司的公司(服务提供商)。因此,我们使用最多3个“目录”的搜索引擎优化友好url:mydomain.com/1/,mydomain.com/1/2/和mydomain.com/1/2/3。在这些url中,1个是用户可以搜索的分支机构,2个代表城市,3个定义公司名称 我在.htaccess文件中使用以下代码完成了此操作 <IfModule mod_rewrite.c> Options +FollowSymlinks
mydomain.com/1/
,mydomain.com/1/2/
和mydomain.com/1/2/3
。在这些url中,1个是用户可以搜索的分支机构,2个代表城市,3个定义公司名称
我在.htaccess文件中使用以下代码完成了此操作
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^(style|media)(/.*)?$ - [L]
RewriteRule index\.* index.php [L,QSA]
RewriteRule ^([^/]*)/([^/]*)/$ branch.php?branch=$1&city=$2 [L,QSA]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/?$ company.php?branch=$1&city=$2&company=$3 [L,QSA]
RewriteRule ^([^/]*)/([^/]*)$ branch.php?branch=$1&city=$2 [L,QSA]
RewriteRule ^([^/][a-zA-Z0-9-]+)$ branch.php?branch=$1 [L,QSA]
</IfModule>
选项+FollowSymlinks
重新启动发动机
重写规则^(样式|媒体)(/.*)-[L]
重写规则索引\.*index.php[L,QSA]
重写规则^([^/]*)/([^/]*)/$branch.php?branch=$1&city=$2[L,QSA]
重写规则^([^/]*)/([^/]*)/([^/]*)/?$company.php?分行=1美元,城市=2美元,公司=3美元[L,QSA]
重写规则^([^/]*)/([^/]*)$branch.php?branch=$1和city=$2[L,QSA]
重写规则^([^/][a-zA-Z0-9-]+)$branch.php?branch=$1[L,QSA]
我的样式表位于目录样式中,如果您访问网址mydomain.com或mydomain.com/1,则此功能可以正常工作。地址为mydomain.com/1/,并进一步重定向到正确的文件名,但在mydomain.com/1/style/
(或mydomain.com/1/2/style
等)中继续搜索stylesheet.css。我知道这个网站上有很多这样的问题,我试过很多,但没有一个真正符合我的要求
我理解这个场景是不是很难,所以我想我会让它变得更容易(但是因为这个语言让我困惑,我真的不知道现在该怎么办lol)。所以我需要的是:
- 每个请求都必须重定向到index.php,并将给定的目录作为参数添加。(所以domain.com/1/重写为
,domain.com/1/a/b重写为index.php?1=1
index.php?1=1&2=a&3=b,在index.php中,我将查找我必须包含的页面)李>
- 目录样式和媒体不在此规则中李>
- 并非每个目录或文件都必须排除,因为用户可能无法访问目录包含(例如)
谢谢 使用根相对URL。所以改变
有点晚了,但这对我有帮助。谢谢