重写不在根目录中的URL

时间:2018-01-04 12:49:02

标签: php .htaccess web

这是我到目前为止所做的,它不像我希望的那样工作:

RewriteEngine On
RewriteRule ^(.*)$ /index.php?id=$1/ [L]

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L,NE]

基本上我想在任何地方删除index.php,并且在目录中我也要编辑查询字符串,如下所示:

https://example.com/directory/?id=Test

应该是:

https://example.com/directory/Test/

这可能吗?

1 个答案:

答案 0 :(得分:0)

您需要使用RewriteBase指令。

我已经在这里为你工作了:https://mi-linux.wlv.ac.uk/~in9352/directory/5

这是我在.htaccess中的内容:

RewriteEngine On
RewriteBase /~in9352/directory/
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/?id=$1 [L]

显然你不需要“~in9352”

以下是文档:http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase