[英]how can i control multi level subdomains with htaccess and php
我有以下動態網址
我的.htaccess文件中有以下內容
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.com$ [NC]
RewriteRule !^index\.php($|/) sub.php?name=%2 [PT,L]
並且工作正常,並顯示與該foo子域相關的數據。 但是當我嘗試訪問
http://foo.mydomain.com/anything-9.html
其中foo是通配符DNS子域,而bla是我的帖子標題,而9是帖子ID
我已經添加了
RewriteRule ^/([^/]+)-([^/]+)\.html$ post.php?name=%2&post=$1&postid=$2 [PT,L]
后
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.com$ [NC]
RewriteRule !^index\.php($|/) sub.php?name=%2 [PT,L]
所以我的htaccess代碼成為
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.com$ [NC]
RewriteRule !^index\.php($|/) sub.php?name=%2 [PT,L]
RewriteRule ^/([^/]+)-([^/]+)\.html$ post.php?name=%2&post=$1&postid=$2 [PT,L]
它仍然顯示其主頁,即sub.php而不是post.php。我應該對.htaccess文件進行哪些更改?
我只用PHP解決了這個問題。 對我來說,它比Apache .htaccess腳本更容易...也更易於維護(一旦編寫了腳本)並且具有更多功能。
我使用.htaccess將所有訪問重定向到一個文件。 這個使用$ _SERVER [“ SERVER_NAME”]變量檢查訪問的子域,其余使用$ _GET [“ q”]中的變量。
這是.htaccess文件:
RewriteEngine on
RewriteRule ^redir.php$ redir.php [L,QSA]
RewriteRule ^(.*)$ redir.php?q=$0 [L,QSA]
第一個確保沒有無限循環,第二個將所有內容重定向到文件。
然后,redir文件包含所需的任何文件,而且也很簡單-$ _SERVER [“ QUERY_STRING”],$ _ GET變量設置為新值,cwdir更改工作目錄(文件),set_include_path(包含路徑)。
有用。 但這有點愚蠢:D
您是否真的需要在此處添加2個問號:post.php ?? name =%2&post = $ 1&postid = $ 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.