简单的 .htaccess 重写以传递 1 个参数

Posted

技术标签:

【中文标题】简单的 .htaccess 重写以传递 1 个参数【英文标题】:Simple .htaccess rewrite to pass 1 parameter 【发布时间】:2012-11-25 11:31:05 【问题描述】:

谁能告诉我我的 .htaccess 文件应该包含什么来创建以下重写:

http://www.example.com/success

打电话

http://www.example.com/index.php?q=success

【问题讨论】:

【参考方案1】:

尝试:

RewriteEngine On
RewriteBase /

RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.+)$ /index.php?q=$1 [L]

【讨论】:

谢谢,如果“成功”是动态值,我该怎么做? 再次感谢.. 但是,当我尝试此操作时,我收到 403 Forbidden 消息 - 知道为什么吗? 哇 - 感谢您的快速回复 :) 不幸的是 - 仍然是 403 :( 不明白为什么!我测试过,它可以工作......你的.htaccess 文件只有这个规则吗?如果没有,请粘贴文件内容好吗? 我只使用您的代码创建了一个新的 .htaccess 文件并将其上传到该文件夹​​。一旦我上传它 - 所有对文件的请求都返回 403 禁止...知道还有什么可能导致这种情况吗?【参考方案2】:

以下代码用于我的网站

RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?q=$1

RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?q=$1

或者你可以写如下

RewriteEngine On

RewriteRule ^(.+)$ index.php?q=$1

RewriteRule ^(.+)/$ index.php?q=$1

【讨论】:

以上是关于简单的 .htaccess 重写以传递 1 个参数的主要内容,如果未能解决你的问题,请参考以下文章

htaccess 301重定向通配符以获取新的基本域名

.htaccess 可以使用 3 个相同的参数吗?

htaccess 301 重定向新基础域名的通配符

htaccess 多参数重写规则

使用.htaccess重写具有多个参数的URL

.htaccess重写以重定向两个不同的文件夹