繁体   English   中英

Apache mod_rewrite path to query string for specific path format

[英]Apache mod_rewrite path to query string for specific path format

我已经为此工作了好几个星期。 我希望能够使用友好的 URL 将变量传递给 PHP 脚本。 例如,如果有人使用这个 URL:

https://example.com/foo/bar/who

我希望我的 PHP 脚本能收到这个:

https://example.com/index.php/?var1=foo&var2=bar&var3=who

问题是我只想在路径中有三个变量时进行重写。 如果少于或多于三个,我不想重写 URL。

我已经看到与这种类型的重写相关的其他几种解释,但没有像这样的。

这几乎可以工作,但并不完全。 如果前三个变量存在某些东西,我只希望完成重写。 我知道这是不完整的,但使用这种方法,至少 REQUEST_URI 包含我可以解析的值。 但同样,我只想在路径中有三个变量时这样做。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !^index\.php/([^/]*)/([^/]*)/([^/]*)$ index.php [L]

谢谢你。

你已经很接近了,就这样吧。 请确保在测试 URL 之前清除浏览器缓存。 您已经创建了仅需要使用它们的反向引用,我现在已经添加了这些。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3 [L]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM