所以,我有这个问题:
- 基地网站位于
http://example.com/
- 第二个网站位于
http://example.com/web2/
- 人们向第二个网站提出各种请求,
http://example.com/myWeb/pg1
例如http://example.com/web2/pg2
最近,由于一些其他问题,我需要为第二个网站自定义新路径,但还要保持第一个网站正常工作。
想法是允许用户通过以下两个地址访问第二个网站:
http://example.com/web2/
http://example.com/alternative-url-web2/
该文件夹/web2/
实际上存在于服务器上,但是如何模拟该文件夹/alternative-url-web2/
并将请求“重定向”到/web2/
?
请注意,我不希望浏览器上的 URL 发生变化,这必须是“静默重定向”。而且我还确保所有其他请求http://example.com/other
都不会被第二个网站重定向。
谢谢你。
更新:
根据@anubhava,我可以通过添加以下内容来简单地解决这个问题.htaccess
:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^alternative-url-web2(/.*|)$ /web2$1 [L,NC]
这可能工作正常,但我注意到以下内容:
http://ex.com/alternative-url-web2
被重定向到http://ex.com/web2/
(更改浏览器 URL);http://ex.com/alternative-url-web2/
被重定向到http://ex.com/
(更改浏览器 URL);http://ex.com/alternative-url-web2/someRequest
工作正常,不会更改浏览器 URL;http://ex.com/alternative-url-web2/index.php
工作正常,不会更改浏览器 URL;
网站说明:
有/web2/
一个.htaccess
可能导致上面的有线重定向行为......所以这里是文件内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>
内部 RewriteRuleindex.php
会导致这一切吗?如果是,我该如何解决?