0

是否可以忽略目录中的所有实际文件RewriteRules?我的意思是,我正在创建 page.php 处理的“平面链接”或“永久链接”(http://example.com/not/an/actual/file/path/)。这仅在我“忽略”所有其他文件时才有效RewriteCond。不是为我的 .htaccess 文件中的目录中的每个真实文件创建一个,而是RewriteCond有办法告诉它检查是否有实际文件显示,如果没有,让 page.php 处理它?

RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteCond %{REQUEST_URI} !^/somefile\.php$
RewriteCond %{REQUEST_URI} !^/someotherfile\.php$
RewriteCond %{REQUEST_URI} !^/page\.php$
RewriteRule ^([^/]*)$ /page.php?p=$1 [L] [NC]
4

2 回答 2

1

是的,很有可能。在现有代码之前添加这些行:

## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
## If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
## If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
## don't do anything
RewriteRule ^ - [L]
于 2012-10-31T20:40:21.603 回答
1

-f以下指示仅当请求的文件 ( ) 或文件夹 ( ) 在磁盘上-d不存在 ( )时才应执行重定向:!

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ /page.php?p=$1 [L,NC]
于 2012-10-31T20:43:48.170 回答