.htaccess捕获所有子域和GET作为GET变量

奥兹格罗泽

以下示例说明了我的问题。

这是我的.htaccess代码

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST} !^www
RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.([^\.]+)$
RewriteRule ^(.*)$ /user.php?user=%1

RewriteRule ^user\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /user.php?path=$1 [L,QSA]

预期的:

http://example.com                      > /index.php
http://example.com/contact              > /index.php?path=contact
http://example.com/cat/sub1/sub2        > /index.php?path=cat/sub1/sub2
http://jack.example.com                 > /user.php?user=jack
http://jack.example.com/contact         > /user.php?user=jack&path=contact
http://jack.example.com/cat/sub1/sub2   > /user.php?user=jack&path=cat/sub1/sub2

发生了:

http://example.com                      > OK
http://example.com/contact              > It opens user.php?path=contact
http://example.com/cat/sub1/sub2        > It opens user.php?path=cat/sub1/sub2
http://jack.example.com                 > OK
http://jack.example.com/contact         > OK
http://jack.example.com/cat/sub1/sub2   > OK

我尝试了很多方法,但没有解决。有什么帮助吗?

巴拿马杰克

由于您使用的是相同的主域,因此我将其包含在规则中,而不是通配符。试试看。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteCond %{REQUEST_URI} ^/$    
RewriteCond %{HTTP_HOST} ((?!www).+)\.example\.com [NC]
RewriteRule ^$ /user.php?user=%1 [L]

RewriteCond %{HTTP_HOST} ((?!www).+)\.example\.com [NC]
RewriteRule ^(.+)$ /user.php?user=%1&path=$1 [L]

RewriteRule ^user\.php$ - [L]

RewriteRule ^(.*)$ /index.php?path=$1 [L,QSA]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通配符子域和子文件夹作为.htaccess中的参数

来自分类Dev

强制在htaccess中使用www,但所有子域除外

来自分类Dev

.htaccess和重写子域

来自分类Dev

htaccess将所有子域+ www重定向到具有cname,vhosts和htaccess的域

来自分类Dev

具有.htaccess和php的通配符子域

来自分类Dev

.htaccess重写:子域作为GET参数,文件路径afterdomain完整

来自分类Dev

Mod_Rewrite将子域和目录设置为GET变量

来自分类Dev

使用htaccess删除get变量和.php

来自分类Dev

将所有子域重定向到主域.htaccess

来自分类Dev

.htaccess-子域和路径为GET var

来自分类Dev

具有子域和执行的多个htaccess重写

来自分类Dev

只允许$ _POST和$ _GET并拒绝所有HTACCESS

来自分类Dev

合并添加的子域和单个页面的URL重写以捕获所有URL

来自分类Dev

htaccess的域和子域与laravel

来自分类Dev

.htaccess重定向路径和子域作为查询参数

来自分类Dev

使用.htaccess将所有子域和子目录重定向到索引页

来自分类Dev

通配符子域和子文件夹作为.htaccess中的参数

来自分类Dev

强制在htaccess中使用www,但所有子域除外

来自分类Dev

htaccess从URL捕获域名作为变量

来自分类Dev

禁用除htaccess中预定义的所有子域

来自分类Dev

Mod_Rewrite将子域和目录设置为GET变量

来自分类Dev

获取子域作为GET参数

来自分类Dev

使用htaccess删除get变量和.php

来自分类Dev

将所有子域重定向到主域.htaccess

来自分类Dev

.htaccess-子域和路径为GET var

来自分类Dev

.htaccess获取变量作为子域

来自分类Dev

合并添加的子域和单个页面的URL重写以捕获所有URL

来自分类Dev

htaccess的域和子域与laravel

来自分类Dev

通配符.htaccess将子域重写为以子域为GET变量的子目录

Related 相关文章

热门标签

归档