.htaccess仅在少数文件上重写并删除.php

.htaccess仅在少数文件上重写并删除.php,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,我正在尝试将所有的.php文件扩展名重写为/ 我用这个代码来实现它: 重新启动发动机 # hide .php extension snippet # To externally redirect /dir/foo.php to /dir/foo RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] RewriteRule ^ %1/ [R,L] # To internally forward /dir/foo to /dir/foo.

我正在尝试将所有的.php文件扩展名重写为/

我用这个代码来实现它:

重新启动发动机

# hide .php extension snippet
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1/ [R,L]

# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
但是,它会断开与数据库对话的“我的管理员”页面,例如包含代码并使用URL断开的页面:

创建ticket.php?设备=XBOX+360

我需要把分机留几页

是否有一种方法可以使用上面的代码,但只能在特定文件上使用,而不是在每个以.php结尾的文件上使用

谢谢,
-O

您可以这样做:

RewriteEngine On

# hide .php extension snippet
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} !/(create-ticket|admin)\.php [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1/ [R,L]

# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

您可以排除某些文件或文件夹,或者使用查询参数传递页面,以便页面建立要查找的模式。