1

首先,如果有人找到一个更好的标题...去吧!问题是,我正在尝试设置 mod rewrite 以便将所有这些都转换为

http:// mysite/phpnuget/nuget/metadata.php

保留查询字符串参数

  • http://mysite/phpnuget/nuget/$metadata
  • http://mysite/phpnuget/nuget/$metadata/wetheaverdirstructure
  • http://mysite/phpnuget/nuget/$metadata/
  • http://mysite/phpnuget/nuget/$metadata?wetheaver=parameter
  • http://mysite/phpnuget/nuget/$metadata/wetheaverdirstructure?wetheaver=parameter
  • http://mysite/phpnuget/nuget/$metadata/?wetheaver=parameter

我通过各种测试在互联网上苦苦挣扎了几个小时,但我尝试过的第十个测试中没有一个......(mysite之前的空间只允许在Stackoverflow上发布......认为它不存在!)有人能给我一些提示吗? 谢谢你,恩里科

(改了标题)

4

1 回答 1

1

你可以试试这个:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  !metadata\.php          [NC]
RewriteCond %{REQUEST_URI}  ^/phpnuget/nuget/\$metadata  [NC] 
RewriteRule  .*     phpnuget/nuget/metadata.php   [L]

它会默默地映射任何像这样的 URL:

http://mysite.com/phpnuget/nuget/$metadata/anything

到:

http://mysite.com/phpnuget/nuget/metadata.php删除最后anything一段。

如果传入的 URL 包含查询,它将以metadata.php查询格式自动附加到。IE?this=is&a=query

以防万一,不需要 QSA 标志。

要使替换 URL 永久可见,请将最后一个 [L] 替换为 [L,R=301]

于 2013-01-25T11:51:20.880 回答