我有以下代码:
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} !^domain\.co
RewriteCond %{HTTP_HOST} !^[^.]+\.(domain\.co)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /somefile.php [L]
说somefile
的位需要是没有扩展名的用户所在的文件名。因此,如果它们位于example.com/file
,则应检索file
。
我尝试过使用下面的代码,但它似乎不起作用:
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} !^domain\.co
RewriteCond %{HTTP_HOST} !^[^.]+\.(domain\.co)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /$.php [L]
重写规则中的.php
位不应该是检索到的文件名的一部分,而是手动添加的。
如果没有获得扩展程序就无法做到这一点,无论扩展程序如何,都可以这样做?
答案 0 :(得分:0)
您可以将此规则添加到现有规则之上,以添加.php
扩展名:
RewriteEngine On
# add .php extension if corresponding .php file exists
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
RewriteCond %{HTTP_HOST} !domain\.co$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !/$ /somefile.php [L]