Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
htaccess重定向问题 我当前的.htaccess: #启用URL重写 重新启动发动机 #将安装目录放在此处: #如果您的URL是www.example.com/,请使用/ #如果您的URL是www.example.com/kohana/,请使用/kohana/ 重写基/ #不要为存在的文件或目录启用重写 重写cond%{REQUEST_FILENAME}-F 重写cond%{REQUEST_FILENAME}-D #对于不是实际文件或目录的reuest, #重写到index.php/URL 重写规则^(.*)$index.php/$1[PT,L]_.htaccess_Mod Rewrite - Fatal编程技术网

htaccess重定向问题 我当前的.htaccess: #启用URL重写 重新启动发动机 #将安装目录放在此处: #如果您的URL是www.example.com/,请使用/ #如果您的URL是www.example.com/kohana/,请使用/kohana/ 重写基/ #不要为存在的文件或目录启用重写 重写cond%{REQUEST_FILENAME}-F 重写cond%{REQUEST_FILENAME}-D #对于不是实际文件或目录的reuest, #重写到index.php/URL 重写规则^(.*)$index.php/$1[PT,L]

htaccess重定向问题 我当前的.htaccess: #启用URL重写 重新启动发动机 #将安装目录放在此处: #如果您的URL是www.example.com/,请使用/ #如果您的URL是www.example.com/kohana/,请使用/kohana/ 重写基/ #不要为存在的文件或目录启用重写 重写cond%{REQUEST_FILENAME}-F 重写cond%{REQUEST_FILENAME}-D #对于不是实际文件或目录的reuest, #重写到index.php/URL 重写规则^(.*)$index.php/$1[PT,L],.htaccess,mod-rewrite,.htaccess,Mod Rewrite,当某人导航到: 我想让他们转到实际的文件夹。当某人导航到: 我想让它们转到index.php/$1 如何实现这一点?您的规则应该有效,因为它仅在请求的URL无法映射到现有文件(!-f)而无法映射到现有文件夹(!-d)时才应用。因此,如果/demo/test是一个实际的文件夹,那么第二个条件(RewriteCond%{REQUEST\u FILENAME}!-d)应该失败。如果请求了/demo,并且既不是现有的常规文件,也不是现有的文件夹,则应将其重定向到/index。php/demo应移动到

当某人导航到:

我想让他们转到实际的文件夹。当某人导航到:

我想让它们转到index.php/$1


如何实现这一点?

您的规则应该有效,因为它仅在请求的URL无法映射到现有文件(
!-f
)而无法映射到现有文件夹(
!-d
)时才应用。因此,如果
/demo/test
是一个实际的文件夹,那么第二个条件(
RewriteCond%{REQUEST\u FILENAME}!-d
)应该失败。如果请求了
/demo
,并且既不是现有的常规文件,也不是现有的文件夹,则应将其重定向到
/index。php/demo

应移动到serverfault.com以使demo/test成为文件夹,显然我必须创建一个名为demo的文件夹并在其中创建文件夹测试。@Alec Smart:是,
-f
-d
会导致真正的文件系统查找。
<IfModule mod_rewrite.c>
# Turn on URL rewriting
RewriteEngine On

# Put your installation directory here:
# If your URL is www.example.com/, use /
# If your URL is www.example.com/kohana/, use /kohana/
RewriteBase /

# Do not enable rewriting for files or directories that exist
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# For reuests that are not actual files or directories,
# Rewrite to index.php/URL
RewriteRule ^(.*)$ index.php/$1 [PT,L]


</IfModule>