mod_rewrite工作在子目录中,而不是在基目录中


mod_rewrite works in subdirectory not in base directory

重写规则是:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_'-.]+)/?$ storefront.php?id_user=$1 [L]

当放置在子目录中时,即:http://example.com/subdirectory/它的作用是将 url 从 http://example.com/subdirectory/user 重定向到 http://example.com/subdirectory/storefront.php?id_user=user

当放置在基本目录中时,即:http://example.com/它无法将 url http://example.com/user重定向到http://example.com/storefront.php?id_user=user

我做错了什么?

好的,

我通过使用这个重写规则来获得我想要的效果,如果感觉是一个黑客而不是它真正应该的方式。 再说一遍..除非有人启发我正在发生的事情,否则它会一直工作。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_'-.]+)/?$ http://example.com/subdirectory/storefront.php?=id_user=$1 [L]

基本上我把它重写到正常工作的目录。 但最终这不是我想要的,因为我想将子目录迁移到基目录,而这个问题正在阻止这一点。