【问题标题】:Url rewrite - Simple issue网址重写 - 简单问题
【发布时间】:2016-10-25 15:06:35
【问题描述】:

我遇到了 URL 重写问题。

我只是想将 www.name.com/demo/profile 之类的智能网址重定向到现有网址:www.name.come/demo/index.php?s =个人资料

我把我的 .htaccess 放在根目录下。

这是我的代码:

RewriteEngine On
RewriteRule ^demo/([a-z]+) demo/index.php?s=$1& [NC,L]

如果我写类似 www.name.com/demo/profile 之类的东西,它就行不通了。

服务器上的 Mod Rewrite 处于活动状态并且可以正常工作(我尝试过其他示例)。

谢谢!

更新

使用 数字 就可以了。

我的规则:

RewriteEngine On
RewriteRule ^demo/([0-9]+) demo/index.php?s=$1& [NC,L]

智能网址: www.name.com/demo/1
现有网址: www.name.come/demo/index.php?s=1

为什么它不适用于字符?

【问题讨论】:

  • 在什么方面不起作用? - 对于给出的具体示例,它应该
  • 你去url看到什么错误?
  • 未找到 在此服务器上未找到请求的 URL /demo/profile。

标签: php apache .htaccess mod-rewrite


【解决方案1】:

您需要为您的规则添加一些条件或使匹配更具限制性。尝试任一:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^demo/([a-z]+) demo/index.php?s=$1& [NC,L]

RewriteEngine On
RewriteRule ^demo/([a-z]+)$ demo/index.php?s=$1& [NC,L]

这样你的正则表达式就不会匹配“index.php”。

【讨论】:

  • 谢谢,但还是不行。总是相同的错误:未找到在此服务器上未找到请求的 URL /demo/profile。
猜你喜欢
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
  • 2011-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-07
  • 2023-03-17
相关资源
最近更新 更多