当我尝试重定向这样的子域时,我的.htaccess文件由于某种原因导致500个内部服务器错误:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com [NC]
RewriteRule ^(.*)$ folder/anotherfolder/$1 [L]
我当前的主持人不会自行重定向子域名,所以我必须这样做。我想要实现的是当用户输入http://subdomain.domain.com/
时,他真的看到http://domain.com/folder/anotherfolder
。但是,我不希望地址栏上的域本身发生变化。子域本身显然是主域的别名,因此指向与主域相同的文件夹。
上面的代码也可以在正则表达式结果用作GET时使用:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com [NC]
RewriteRule ^(.*)$ folder/anotherfolder/index.php?p=$1 [L]
然而,GET“p”的值不是例如“test.php”(如果你试图访问subdomain.domain.com/test.php),但是来自主域的整个路径(即文件夹/ anotherfolder / test.php)。
任何想法我做错了什么?
答案 0 :(得分:2)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain.domain.com [NC]
RewriteRule ^folder/anotherfolder/ - [L]
RewriteRule (.*) folder/anotherfolder/$1 [L]
有趣的是,在你问别人之后,答案通常就会显现出来。
答案 1 :(得分:1)
将您的代码更改为:
RewriteEngine On
RewriteCond %{QUERY_STRING} !^p= [NC]
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$ [NC]
RewriteRule ^(.*)$ folder/anotherfolder/index.php?p=$1 [L]