1

我有以下网址:

http://www.domain.gr/add-event?state=3cb7a28b14112d3f3ecada3d6915ac5f&code=AQAZeWtJgz1ZYWvsorRPiMRetkNhnU3NrQ9KYzIRkogUpg6IPHCkFCAWMBUYGYtulfWnr5JHWs2GbrBUAp89pVLStyKs_rer2r14yLI6qdByoqEv1TtHGK4TPzdLFRTgXZEzPEUyk9ixYQfdmZid0dRdTfVXDPqniCKnu8RHQb1ErRDezsdI2CcYsTxofe_wwtZYVD3d4r9VtlANrGn_klP1#_=_ 

我的 RewriteRule 与http://www.doamin.gr/news/date/title-of-article等 'news' 设置为 $_GET['page'] 和 $_GET['request'] 为 '/date /title-of-article' 我的 htaccess 具有以下代码以提供干净的 url:

RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)(.*)$ /index.php?page=$1&request=$2 

使用上面的 url $_GET 设置如下:

$_GET['page'] = '添加事件'; $_GET['请求'] = ''; // 空白的

在这种情况下,我应该如何修改 reqriteRule 以获取 url 的剩余部分?(不会弄乱我的干净 url)。

4

1 回答 1

-1

您的第一个子模式([^/]*)贪婪模式。这意味着表达式将匹配输入字符串的最大可能子字符串(并且由于表达式匹配除/字符之外的所有内容,因此它将匹配整个字符串——随后,第二个子模式将不匹配任何内容)。

您可以将子模式标记为非贪婪惰性(即([^/]*?)),但随后它将仅匹配/字符。您可以修改模式以匹配 URL 查询部分开头的所有内容:^([^/]*?)\?

于 2013-01-21T22:23:15.637 回答