将不带扩展名的文件重定向到特定URL,并忽略带扩展名的文件

时间:2019-10-12 09:11:35

标签: .htaccess

我有3个网址:

  • domainname.com/add.php
  • domainname.com/list.php
  • domainname.com/showcase( showcase WORD会随着在联属会员网站上使用而不断变化,但不固定)

当用户输入 domainname.com/showcase 时,这应该重定向到 domainname.com/redirect.php?shortcode=$1 ,但是当用户选择 domainname时。 com / add.php domainname.com/list.php ,它应该打开该特定页面,并且不要重定向。

我已经在.htaccess中编写了以下脚本,它正确地重定向了 domainname.com/showcase ,但它也重定向了 domainname.com/add.php domainname.com/list.php

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ redirect.php?shortcode=$1 [L,QSA]
</IfModule>
# END WordPress

请告知我如何停止 domainname.com/add.php domainname.com/list.php 的重定向,并保持 domainname.com/showcase 到目前为止的重定向。

1 个答案:

答案 0 :(得分:0)

您需要使用RewriteCond从重定向中排除现有文件

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
#exclude dirs
RewriteCond %{REQUEST_FILENAME} !-d
#exclude files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ redirect.php?shortcode=$1 [L,QSA]
</IfModule>
# END WordPress