Php 通过htaccess定向url
我知道下面的代码Php 通过htaccess定向url,php,.htaccess,url,Php,.htaccess,Url,我知道下面的代码 RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 用于在每次访问没有www的url时将www添加到HTTP主机 类似地,代码 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f Rewrit
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
用于在每次访问没有www的url时将www添加到HTTP主机
类似地,代码
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
用于将url中的所有内容发布到url变量值中的index.php。没有像第一个示例中那样更改URL(将URL从没有www更改为有www)
我想要的有点棘手
我想如果没有www,那么应该执行第一个示例步骤
如果有www或任何其他文本,例如forum.site.com或blog.site.com或www.site.com,则如第二个示例中所示,它应该以静默方式指向同名文件夹
eE.g。如果是www,则应将其重写为变量所属的文件夹www/
像
访问者类型www.site.com
它应该从www/folder加载文件,如果访问者类型为
www.site.com/index.php?pid=1
然后它应该和index.php?pid=1
数据一起重写到www/folder
除了www.like for fourm.site.com/index.php?blah=blahBlah等,其他任何东西都应该如此
希望我没有混淆,也没有违反规则
RewriteEngine On
RewriteCond %{HTTP_HOST} !^.+{3,}
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(.*)\.(.+\..+)
RewriteRule ^(.*)$ http://%2/%1/$1 [QSA,L]
第二条规则的算法如下:
RewriteCond %{HTTP_HOST} ^(.*)\.(.+\..+\..+)
RewriteRule ^(.*)$ http://%2/%1/$1 [QSA,L]
这将重写:
subdomain.site.co.uk
为http://site.co.uk/subdomain/
实际上,我还将使用一个由3部分组成的域。所以,如果你告诉我如何制作%1%2等,我会非常满意。另外,请告诉我如何在变量中生成%1部分文章。e、 g.如果访问了forum.site.com
,那么如何像site.com/index.php那样重写它?access=forum&otherRequest=value
此外,您的代码会将地址栏中的url更改为www.site.com/www/,我不希望这样。当任何人访问www.site.com时,我想从site.com/www/静默加载。@Hezbullahsah我添加了3部分域的规则。%1、%2是括号中数据的参考。只需添加另一个\..+部分,这意味着[dot][something]@hezbullahsah它不应该更改地址栏中的代码,因为我不为第二个重写规则设置R标志。很奇怪,我没变,亲爱的。参见surani.com.pk,我按照你的建议做了3个部分。