在我的主网站public_html
的根文件夹thesite.com
文件夹中,我有这个htaccess文件:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^m\.thesite\.com$ [NC]
RewriteCond %{HTTP_HOST} ^blog\.thesite\.com$ [NC]
RewriteRule ^ - [L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.thesite\.com [NC]
RewriteRule ^(.*)$ https://thesite.com/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^category/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ category\_product\_list.php?mid=$1&sid=$2&did=$3 [L]
RewriteRule ^category/([^/\.]+)/([^/\.]+)/?$ category\_product\_list.php?mid=$1&sid=$2 [L]
RewriteRule ^category/([^/\.]+)/?$ category\_product\_list.php?mid=$1 [L]
RewriteRule ^p/([^/\.]+)/([^/\.]+)/([0-9]+)/([0-9]+)/([0-9]+)/?$ product.php?id=$2&vid=$3&mid=$4 [L]
RewriteRule ^p/([^/\.]+)/([^/\.]+)/([0-9]+)/([0-9]+)/?$ product.php?id=$2&vid=$3 [L]
RewriteRule ^p/([^/\.]+)/([^/\.]+)/([0-9]+)/?$ product.php?id=$2 [L]
RewriteRule ^offer/(.*) product_offer.php?ind=$1
RewriteRule ^([^/\.]+)/?([^/\.]*)/?$ $1.php [QSA,L]
此处,我强制使用非www网址以及强制https
的{{1}}网址。我有两个子域:thesite.com
和m.thesite.com
。
两者都位于blog.thesite.com
内的单独子文件夹中。
public_html
位于m.thesite.com
文件夹中。它有这个htaccess文件:
/public_html/m.thesite.com/
对于这个子域名,我还需要强制使用https网址以及非www网址。
它似乎适用于主站点。我的意思是RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.m\.thesite\.com [NC]
RewriteRule ^(.*)$ https://m.zapteka.com/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^category/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ category\_product\_list.php?mid=$1&sid=$2&did=$3 [L]
RewriteRule ^category/([^/\.]+)/([^/\.]+)/?$ category\_product\_list.php?mid=$1&sid=$2 [L]
RewriteRule ^category/([^/\.]+)/?$ category\_product\_list.php?mid=$1 [L]
RewriteRule ^p/([^/\.]+)/([^/\.]+)/([0-9]+)/([0-9]+)/([0-9]+)/?$ product.php?id=$2&vid=$3&mid=$4 [L]
RewriteRule ^p/([^/\.]+)/([^/\.]+)/([0-9]+)/([0-9]+)/?$ product.php?id=$2&vid=$3 [L]
RewriteRule ^p/([^/\.]+)/([^/\.]+)/([0-9]+)/?$ product.php?id=$2 [L]
RewriteRule ^([^/\.]+)/?([^/\.]*)/?$ $1.php [QSA,L]
RewriteRule ^offer/(.*) product_offer.php?ind=$1
。但是当我尝试访问thesite.com
时,它似乎在内部重定向到m.thesite.com
而不是thesite.com
的文件。我的意思是网址显示为m.thesite.com
,但页面来自https://m.thesite.com/
我一直试图将问题调试几个小时。可能它可能是我错过的小事。有什么想法吗?
BTW,https://thesite.com
正在安装通配符SSL。
修改
很抱歉,如果我的解释令人困惑。当我说网址显示为thesite.com
但内容来自https://m.thesite.com/
时,我的意思是说在浏览器中,网址显示为https://thesite.com/
。但模板文件的内容来自主站点https://m.thesite.com
的桌面版本。 thesite.com
是该网站的移动版本。显示站点桌面和移动版本中单独内容的页面。
就像您在上面包含的htaccess代码中看到的那样,桌面版本的m.thesite.com
文件夹中有一些PHP文件。该网站移动版的所有文件都在/public_html/
文件夹中。
因此,简而言之,当我尝试访问/public_html/m.thesite.com/
时,它会显示https://m.thesite.com/
而不是index.php
/public_html/index.php
页面
这就是我如何发现路由中的问题。
修改
使用此命令/public_html/m.thesite.com/
:
我还检查了Apache版本,并使用以下命令查看了它/usr/local/apache/bin/httpd -S
:2.2.27
所以我尝试在htaccess文件中添加这一行:
httpd -V
但它给出了内部服务器错误。所以我也尝试了这一行:
RewriteLog "/logs/rewrite.log"
RewriteLogLevel 9
访问网站时,这也给了我内部服务器错误。所以我评论了它。