【问题标题】:Remove path of subdomain from URL in .htaccess从 .htaccess 中的 URL 中删除子域的路径
【发布时间】:2015-02-11 04:47:37
【问题描述】:

我现在已经在这个问题上投入了几个小时,但我似乎无法解决它。

我有 2 个 Joomla 网站(lisettejonkman.nl 和 tekstbureaulis.nl)都在他们自己的 public_html 文件夹的子文件夹中,并带有一个 .htaccess 文件来重定向到这些网站。问题是这些网站的 URL 显示了包含 joomla 网站的这两个文件夹(/lisettejonkman.nl 和 /tekstbureaulis.nl)的路径:

http://tekstbureaulis.nl/tekstbureaulis.nl/anypage

我想从这个 URL 中删除路径名以获取:

http://tekstbureaulis.nl/anypage

我的 .htaccess 与包含 joomla 安装的两个文件夹一起位于 public_html 文件夹中:

public_html/.htaccess
public_html/lisettejonkman.nl/(a whole bunch of joomla folders and files)
public_html/tekstbureaulis.nl/(a whole bunch of joomla folders and files)

我的 .htaccess 看起来像这样:

####SUBDOMAINS_HEADER####
RewriteEngine on
#RULE:www,tekstbureaulis.nl,/tekstbureaulis.nl
#RULE:,tekstbureaulis.nl,/tekstbureaulis.nl
#RULE:www,lisettejonkman.nl,/lisettejonkman.nl
#RULE:,lisettejonkman.nl,/lisettejonkman.nl
#RULE:www,lisette-jonkman.nl,/lisettejonkman.nl
#RULE:,lisette-jonkman.nl,/lisettejonkman.nl
RewriteCond %{HTTP_HOST}    ^www.tekstbureaulis.nl$
RewriteCond %{REQUEST_URI}  !^/tekstbureaulis.nl/
RewriteRule (.*)            /tekstbureaulis.nl/$1 [last]
RewriteCond %{HTTP_HOST}    ^tekstbureaulis.nl$
RewriteCond %{REQUEST_URI}  !^/tekstbureaulis.nl/
RewriteRule (.*)            /tekstbureaulis.nl/$1 [last]
RewriteCond %{HTTP_HOST}    ^www.lisettejonkman.nl$
RewriteCond %{REQUEST_URI}  !^/lisettejonkman.nl/
RewriteRule (.*)            /lisettejonkman.nl/$1 [last]
RewriteCond %{HTTP_HOST}    ^lisettejonkman.nl$
RewriteCond %{REQUEST_URI}  !^/lisettejonkman.nl/
RewriteRule (.*)            /lisettejonkman.nl/$1 [last]
RewriteCond %{HTTP_HOST}    ^www.lisette-jonkman.nl$
RewriteCond %{REQUEST_URI}  !^/lisettejonkman.nl/
RewriteRule (.*)            /lisettejonkman.nl/$1 [last]
RewriteCond %{HTTP_HOST}    ^lisette-jonkman.nl$
RewriteCond %{REQUEST_URI}  !^/lisettejonkman.nl/
RewriteRule (.*)  
####SUBDOMAINS_TAILER####

如果我对单个域尝试 R=302 方法:

####SUBDOMAINS_HEADER####
RewriteEngine on
#RULE:www,tekstbureaulis.nl,/tekstbureaulis.nl
#RULE:,tekstbureaulis.nl,/tekstbureaulis.nl
#RULE:www,lisettejonkman.nl,/lisettejonkman.nl
#RULE:,lisettejonkman.nl,/lisettejonkman.nl

RewriteCond %{HTTP_HOST}    ^www.tekstbureaulis.nl$
RewriteCond %{REQUEST_URI}  !^/tekstbureaulis.nl/
RewriteRule (.*)            /tekstbureaulis.nl/$1 [last]

RewriteCond %{HTTP_HOST}    ^tekstbureaulis.nl$
RewriteCond %{REQUEST_URI}  !^/tekstbureaulis.nl/
RewriteRule (.*)            /tekstbureaulis.nl/$1 [last]

RewriteCond %{HTTP_HOST} ^(?:www\.)?lisettejonkman\.nl$ [NC]
RewriteCond %{THE_REQUEST} \s/+lisettejonkman\.nl/(\S*)\s [NC]
RewriteRule ^ /%1 [R=302,L,NE]
####SUBDOMAINS_TAILER####

我在错误日志中得到以下类型的错误:

[Tue Dec 16 22:29:09 2014] [error] [client 82.173.114.125] File does not exist: /home/tekstbureaulis.nl/public_html/administrator
[Tue Dec 16 22:29:11 2014] [error] [client 192.211.49.200] File does not exist: /home/tekstbureaulis.nl/public_html/administrator

它似乎试图重定向到一个不存在的文件夹(/home),因为路径的顺序是错误的。但是在htaccess代码中找不到这个文件夹,所以不太明白……

【问题讨论】:

  • 那么什么不起作用?
  • 一切正常,但我无法让 URL 中的双路径名消失。我只是不希望该网站的访问者看到不同 Joomla 安装的路径名。

标签: .htaccess url joomla path subdomain


【解决方案1】:

您需要在 .htaccess 中进行重定向

类似的东西;

RedirectMatch 301 ^/tekstbureaulis.nl/(.*)$ http://www.tekstbureaulis.nl/$1

这只是我的索引删除重定向的编辑,尚未经过测试。

RedirectMatch 301 ^/index.php/(.*)$ http://domain.com/$1

【讨论】:

  • 嗨,肖恩,感谢您的回复。我现在收到一条错误消息和一条消息:Chrome 中的“此网页有重定向循环”。我是否需要删除 htaccess 文件的其他内容才能使其正常工作?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多