【发布时间】:2016-02-18 16:10:14
【问题描述】:
我知道我知道这是一个愚蠢的问题,但是关于 SO 和其他地方的答案并没有告诉我应该如何做。
我有一个 .htaccess Mod_rewrite,它接受字符串并将其用作index.php?nm=<value> 中的值,如下所示:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?pagenm=$1 [QSA]
我想设置 htaccess 以显示我的页面,即使 URI 没有设置 pagenm 值,例如:www.mywebsite.com/ 确实加载得很好,因为 index.php 页面有一个捕获规则,如果没有 @987654325 @值被赋予使用默认的页内值,但我想要的是浏览器URL被更新 (希望没有刷新,重定向,加载页面两次) :
如果没有给出值,则 htaccess 重写为 welcome 以便:
www.mywebsite.com
将始终在浏览器中显示为
www.mywebsite.com/welcome
我已经尝试过DirectoryIndex welcome,但这不会更新 URL。
【问题讨论】:
-
根据定义这是重定向,但由于服务器正在处理重定向,因此您实际上不会加载页面两次。您会收到从服务器发回的标头,并且浏览器会 ping 新地址并点击它。像
Redirect "/" "/welcome"这样的东西就足够了。另一种方法是使用 JS 重写历史记录,但是不考虑重定向需要付出很多努力。 -
如果没有 mod_rewrite 字符串,我如何告诉 htaccess 我将默认的
index页面呈现为 mod_rewrite/welcome并重新加载?只要最终的 PHP 页面不加载两次就是我想要避免的。干杯 -
我刚刚编辑了评论,而你问:)
-
下面的答案增加了 302(找到)。一个很好的补充!
标签: .htaccess mod-rewrite