.htaccess 简单的URL重写不起作用
首先,我知道这有几个问题,但我的经验是,其他规则可以工作,比如删除.php扩展名,而此规则不起作用:.htaccess 简单的URL重写不起作用,.htaccess,.htaccess,首先,我知道这有几个问题,但我的经验是,其他规则可以工作,比如删除.php扩展名,而此规则不起作用: RewriteRule ^hello$ marketplace [NC,R=301] 这只是一个简单的测试,它不起作用。URL仍然是marketplace,而不是hello。我试图删除所有其他规则,让上面的规则成为我的htaccess文件中唯一存在的规则,但仍然不起作用 有什么想法吗?mod_rewrite显然是打开的,因为其他规则可以工作 已测试但不工作: RewriteRule ^mark
RewriteRule ^hello$ marketplace [NC,R=301]
这只是一个简单的测试,它不起作用。URL仍然是marketplace,而不是hello。我试图删除所有其他规则,让上面的规则成为我的htaccess文件中唯一存在的规则,但仍然不起作用
有什么想法吗?mod_rewrite显然是打开的,因为其他规则可以工作
已测试但不工作:
RewriteRule ^marketplace$ /hello [NC,R=301]
以上是一条经过充分测试的有效规则
第一条规则将把.php
重定向到类似URL的目录,例如domain.com/marketplace.php
变成domain.com/marketplace
第二条规则将marketplace
重定向到hello
第三条规则在内部将hello
重定向到marketplace.php
,因此URL仍然是hello
,内容为marketplace.php
最后一条规则将验证它的目录不存在,但作为php文件存在,并在内部重定向到它
因此,如果您访问marketplace.php
,它会转到marketplace
,然后hello
,在hello中您将看到marketplace.php
的内容
如果
marketplace.php
不存在,则会出现404错误。我看到我切换了位置,但是,它仍然不起作用。仍然没有重定向。看看我的edit.Nope,URL实际上是marketplace.php,我有一个规则,删除.php扩展名,使其仅为“marketplace”。现在我只想测试将marketplace更改为hello。@Juliansange hello.php是否存在,或者您是否有将其内部重写为php的规则?不,不存在。@Juliansange然后将生成404,因为您将marketplace重定向到一个不存在的位置,除非您有另一条规则捕获所有不存在的URL,比如index.php
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.*)\.php [NC]
RewriteRule ^ /%1 [R=301,QSA,L]
# Redirect to hello
RewriteRule ^marketplace$ /hello [R=301,NC,L]
# Show the content of marketplace on hello
RewriteRule ^hello$ /marketplace.php [NC,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^([^/]+)/?$ $1.php [L]