【发布时间】:2015-02-28 18:28:28
【问题描述】:
我的 htaccess 出现问题。
我有这个网址:www.mypage.com/search.php?region=EUW&summonerName=Summonername。
这在我的 .htaccess 文件中:
RewriteRule ^(.*)/(.*)/ https://www.mypage.com/search.php?region=$1&summonerName=$2 [L]
当我尝试转到 www.mypage.com/EUW/Summonername 时,它返回 404。
当然,在创建这个线程之前,我已经搜索了很多关于 htaccess url rewrite 的信息,但是没有任何效果。代码有什么问题?干杯。
编辑:我找到了使用方法:RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)/(.*)/?$ search?region=$1&summonerName=$2 现在我可以毫无问题地执行https://www.mypage.com/text/text 之类的网址,但我仍然遇到问题。在我的 index.php 表单中,它仍然重定向到https://www.mypage.com/search.php?region=text&summonerName=text,我什至不知道为什么。有什么想法?女士们先生们,干杯。
【问题讨论】:
-
在规则中,您正在检查是否以 / 结尾,但您的 URL 没有。因此它不起作用。
-
您的示例确实匹配规则的正则表达式,因为尾随
/。什么不尝试RewriteRule ^(.*?)/(.*?)/?... 尾随 Q 标记使尾随斜杠可选。也让你的通配符不贪婪:-) -
RewriteRule ^(.*?)/(.*?)/?有效,但它会将我重定向到 www.mypage.com/search.php?region=euw&summonerName=summonername。有什么想法吗?
标签: php .htaccess mod-rewrite url-rewriting