我见过几个答案,但他们都没有为我工作。难以使用.htaccess重写网址
如何使用我的.htaccess
重写下面的内容? mod_rewrite在我的文件中。
http://example.com/local/vendor/index.php?handle=Company
是:
http://example.com/local/vendor/Company
我见过几个答案,但他们都没有为我工作。难以使用.htaccess重写网址
如何使用我的.htaccess
重写下面的内容? mod_rewrite在我的文件中。
http://example.com/local/vendor/index.php?handle=Company
是:
http://example.com/local/vendor/Company
如何改写下面...
这里有可能是一个更根本的问题。你不要重写这样在.htaccess
。您将从“朋友”URL重写为回到实际的URL /文件系统路径。所以,这是反过来,你重写来自:
http://example.com/local/vendor/Company
到您的应用程序期待实际的URL:
http://example.com/local/vendor/index.php?handle=Company
例如:
RewriteEngine On
RewriteRule ^(local/vendor)/(Company)$ /$1/index.php?handle=$2 [L]
$1
和$2
是反向引用到RewriteRule
模式中的被捕获组。
上面的内容只是你说的具体的URL,即。 /local/vendor/Company
。我怀疑“公司”是想成为一个占位符?在这种情况下,你需要使这个更一般。例如:
RewriteRule ^(local/vendor)/(\w+)$ /$1/index.php?handle=$2 [L]
\w
是单词字符的简写字符类。这不包括点(即.
),因此在重写为index.php
时避免了重写循环。
UPDATE:以上假定您的.htaccess
文件位于文档根目录,即。 example.com/.htaccess
。但是,如果.htaccess
文件位于/local
子目录(即example.com/local/.htaccess
。) - 当你出现在意见建议 - 那么你就需要调整上述指令从RewriteRule
模式删除local/
和删除斜杠前缀替代。例如:
RewriteRule ^(vendor)/(\w+)$ $1/index.php?handle=$2 [L]
感谢您的快速回复。我试过这个,但它仍然不起作用。也许我应该说“本地”是我的文档根。这会改变什么吗? 当我在浏览器中键入http:// localhost/local/vendor/Company时,它给了我404。它将替换为供应商处理 404我得到的是“在此服务器上找不到所请求的URL /本地/供应商/公司”。 – greeves
术语问题的位数我认为......如果“本地”是您的_document root_(我的意思是您的“文档根目录”),那么它根本就不在您的URL中。 (文档根目录是定义公共文件根目录的文件系统路径 - 它是服务器配置中的配置指令。)如果“本地”仅仅是您从中提供文件的子目录,并且是该目录的位置。 htaccess'文件,那么你应该从上面的指令中删除'local /'。 – MrWhite
我已经更新了我的答案。 – MrWhite
您需要**尝试自己编写代码**。在[**做更多的研究**之后](https://meta.stackoverflow.com/q/261592/1011527)如果你有问题**发布你已经尝试了**的**明确的解释不工作**并提供[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。阅读[如何问](http://stackoverflow.com/help/how-to-ask)一个很好的问题。请务必[参观](http://stackoverflow.com/tour)并阅读[this](https://meta.stackoverflow.com/q/347937/1011527)。 –
周杰伦 - 我是新手编程,我只是想得到答案,所以我可以得到一个网站的生活。我期待像你这样的评论。感谢任何可以提供的帮助。 – greeves
[参考:mod \ _rewrite,URL重写和“漂亮链接”可能的重复解释](https://stackoverflow.com/questions/20563772/reference-mod-rewrite-url-rewriting-and-pretty-links-explained ) –