正则表达式 – 如果文件或目录存在,则RewriteCond跳过规则

前端之家收集整理的这篇文章主要介绍了正则表达式 – 如果文件或目录存在,则RewriteCond跳过规则前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图调整我的htacess文件以跳过重写规则,如果文件或目录存在,但当文件存在时,它会将URL更改为不同的.我不知道为什么会这样.这是我的htaccess文件
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^project/([^/\.]+)/?$index.PHP?view=project&project=$1 [L]
RewriteRule ^for/content/ag index.PHP?view=opening&section=ag [L]
RewriteRule ^for/content/bus index.PHP?view=opening&section=bus [L]
RewriteRule ^for/content/fcs index.PHP?view=opening&section=fcs [L]
RewriteRule ^for/content/market index.PHP?view=opening&section=market [L]
RewriteRule ^for/content/trade index.PHP?view=opening&section=trade [L]
RewriteRule ^for/content/teched index.PHP?view=opening&section=teched [L]
RewriteRule ^for/content/([^/\.]+)/?$index.PHP?view=content_area&section=$1 [L]

目录/ project / nti存在,带有index.PHP文件.输入地址mywebsite.com/folder/project/nti后,它将更改为mywebsite.com/folder/project/nti/?view=project\u0026amp;project=nti.我将此应用于示例站点位于子文件夹中的测试服务器上,但实现后,它将位于根Web服务器文件夹中.

谢谢你的帮助!

删除额外的[OR]并让您的代码如下:
# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
# If the request is not for a valid link
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^project/([^/.]+)/?$index.PHP?view=project&project=$1 [L,NC,QSA]

猜你在找的正则表达式相关文章