需要澄清 mod_rewrite 问题

Posted

技术标签:

【中文标题】需要澄清 mod_rewrite 问题【英文标题】:Clarification on mod_rewrite issue needed 【发布时间】:2011-06-18 06:51:44 【问题描述】:

我有一个使用 php 表单中的 GET 变量生成的 URL。我遇到的问题是传递了两个变量。这是一个示例 URL 来说明:

http://www.examplesite.com/example.php?first=one&second=two

我想在我的 .htaccess 中使用 mod_rewrite 来使这个 URL 更小。理想情况下,我想要 URL...

http://www.examplesite.com/one

能够重定向到完整的 URL...

http://www.examplesite.com/example.php?first=one&second=two

但正如您所见,有两个变量。这可能吗?如果不是,我可以使用这两个变量获取 URL 的最短时间是多少?

这是我目前使用 mod_rewrite 解决此问题的尝试

RewriteEngine on  

# don't rewrite if the file exists
RewriteCond %REQUEST_FILENAME !-f
# don't rewrite if the directory exists
RewriteCond %REQUEST_FILENAME !-d

RewriteRule ^(.*)$ example.php?first=$1&second=$2

【问题讨论】:

【参考方案1】:

试试这个:

RewriteEngine on  

# don't rewrite if the file exists
RewriteCond %REQUEST_FILENAME !-f
# don't rewrite if the directory exists
RewriteCond %REQUEST_FILENAME !-d

# http://www.examplesite.com/one/two
RewriteRule ^([^/]*)/([^/]*)$ /example.php?first=$1&second=$2 [L]

【讨论】:

以上是关于需要澄清 mod_rewrite 问题的主要内容,如果未能解决你的问题,请参考以下文章

从 mod_rewrite 到 isapi_rewrite

仅使用 mod_rewrite 重定向主页

.htaccess 新手问题使用 mod_rewrite

mod_rewrite RewriteCond - 仅域部分需要 NC 标志吗?还有一些

使用 Mod_rewrite 将 HTTP 重定向到 HTTPS

使用 mod_rewrite RewriteRule 重写所有查询以不需要 .php 扩展名