Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php htaccess子域配置和url重写_Php_.htaccess_Url Rewriting_Subdomain - Fatal编程技术网

Php htaccess子域配置和url重写

Php htaccess子域配置和url重写,php,.htaccess,url-rewriting,subdomain,Php,.htaccess,Url Rewriting,Subdomain,任何人都可以向我提供htaccess配置,以便我可以将我的文件夹视为子域 假设用户将尝试浏览http://folder.mydomain.com用户实际上看到了http://mydomain.com/folder 另外,我希望浏览器中的URL显示http://folder.mydomain.com而非http://mydomain.com/folder 虽然我在互联网上找到了解决方案,但无法使其发挥作用 提前感谢。试试: RewriteEngine On # to handle directo

任何人都可以向我提供htaccess配置,以便我可以将我的文件夹视为子域

假设用户将尝试浏览
http://folder.mydomain.com
用户实际上看到了
http://mydomain.com/folder

另外,我希望浏览器中的URL显示
http://folder.mydomain.com
而非
http://mydomain.com/folder

虽然我在互联网上找到了解决方案,但无法使其发挥作用

提前感谢。

试试:

RewriteEngine On

# to handle directory slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)
RewriteCond %{DOCUMENT_ROOT}/%1%{REQUEST_URI} -d
RewriteRule ^(.+[^/])$ /$1/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)
RewriteCond %{DOCUMENT_ROOT}/%1 -d
RewriteRule ^(.*)$ /%1/$1 [L]
条件首先检查请求是否已针对现有文件或目录,然后检查主机名是否以“www”开头,然后为子域创建分组(例如,
文件夹
),然后在第一条规则中,检查请求是否位于“文件夹”内是一个目录,请求不会以斜杠结尾。这将重定向请求以包含尾部斜杠。这是因为mod_dir和DirectorySlash选项将重定向对没有尾部斜杠的目录的请求,这将公开您的“文件夹”


第二条规则具有相同的条件,只是它只检查子域是否是存在的文件夹。然后它会在内部将请求重写到该文件夹。

到目前为止,您尝试了什么?