我已经看到了几个答案,但没有一个对我有用。
如何使用.htaccess
重写以下内容? mod_rewrite在我的文件中。
http://example.com/local/vendor/index.php?handle=Company
是:
http://example.com/local/vendor/Company
答案 0 :(得分:0)
如何重写以下内容......
这里可能存在一个更基本的问题。你不会在.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
模式中捕获的群组的反向引用。
上述内容仅与您声明的特定网址相匹配,即。 /local/vendor/Company
。我怀疑"公司"是一个占位符?在这种情况下,你需要使这更通用。例如:
RewriteRule ^(local/vendor)/(\w+)$ /$1/index.php?handle=$2 [L]
\w
是单词字符的速记字符类。这会排除点(即.
),因此在重写为index.php
时避免重写循环。
更新:以上假设您的.htaccess
文件位于文档根目录中,即。 example.com/.htaccess
。但是,如果.htaccess
文件位于/local
子目录中(即。example.com/local/.htaccess
) - 正如您在评论中建议的那样 - 那么您需要调整上述指令以删除{来自local/
模式的{1}},并从替换中删除斜杠前缀。例如:
RewriteRule