gpt4 book ai didi

.htaccess - .htaccess RewriteRule到路径而不更改URL

转载 作者:行者123 更新时间:2023-12-03 13:36:48 25 4
gpt4 key购买 nike

所以,我有这个问题:


基本网站位于http://example.com/
第二个网站位于http://example.com/web2/
对第二个网站提出各种请求的人喜欢
http://example.com/myWeb/pg1http://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>


内部的 index.php的RewriteRule会导致所有这一切吗?如果是,我该如何解决?

最佳答案

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^alternative-url-web2(/.*|)$ /web2$1 [L,NC]


备用代码:

RewriteRule ^alternative-url-web2/?$ /web2/ [L,NC]
RewriteRule ^alternative-url-web2/(.+)$ /web2/$1 [L,NC]

关于.htaccess - .htaccess RewriteRule到路径而不更改URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18803615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com