.htaccess组合从url重定向/隐藏子文件夹并强制将“www”插入到url

时间:2012-09-21 15:11:51

标签: .htaccess mod-rewrite redirect

我几乎有这个工作。我的问题是,只要点击网站内的任何链接,子文件夹名称就会添加到网址中。我对htaccess文件所做的修改都在根目录中,站点目录中的修改是标准的joomla htaccess文件。我不确定这是不是搞砸了。以下是代码示例。

要改写,我将网址输入浏览器“domain.com”htaccess执行其工作并自动将其更改为“www.domain.com”。我知道它正在路由到子文件夹,因为我可以看到实际的网站。然后我点击“主页”按钮作为示例。然后,地址栏中显示的网址为“www.domain.com/site”

##### Redirect non-www to www -- BEGIN
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R,L]
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^/?(.*)$ http://www.domain.com/$1 [R=301,L]
##### Redirect non-www to www -- END

##### Subfolder redirect --BEGIN
RewriteRule ^(.*)$ /site/$1 [L]
RewriteRule ^(/)?$ site/index.php [L]
##### Subfolder redirect --END

如果需要,我很乐意发布整个htaccess文件,但我可以告诉你,通过将这两个条目更改为它,我已经将网站带到现在的位置。我在文件中有很多“安全”措施。

编辑: 我应该从一开始就把它放进去,这是我尝试重定向直接调用index.php。我刚注意到它可能与我的其他重定向作斗争。

##### Redirect index.php to / -- BEGIN
RewriteCond %{THE_REQUEST} !^POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteCond %{SERVER_PORT}>s ^(443>(s)|[0-9]+>s)$
RewriteRule ^index\.php$ http%2://www.domain.com/ [R,L]
##### Redirect index.php to / -- END

编辑2:我一直在从浏览器中转储我的网络缓存以进行测试。我的网站在第一次连接时似乎运行速度非常慢,就内容而言几乎没有任何内容。我添加了一些要求太多的东西吗?

0 个答案:

没有答案