Php htaccess在父文件夹不存在时跳过它
我现在有www.mysite.com 我只有一个子文件夹。。。www.mysite.com/admin 我当前的.htaccess:Php htaccess在父文件夹不存在时跳过它,php,.htaccess,redirect,mod-rewrite,Php,.htaccess,Redirect,Mod Rewrite,我现在有www.mysite.com 我只有一个子文件夹。。。www.mysite.com/admin 我当前的.htaccess: Options +FollowSymLinks RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^([^/]*)$ /page.php?id=$1 [L] 因此,当前如果有人转到mysite.com/admin,
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([^/]*)$ /page.php?id=$1 [L]
因此,当前如果有人转到mysite.com/admin,他们可以访问子文件夹并转到登录页面
但是如果有人键入mysite.com/foo,它会变为mysite.com/page.php?id=foo,这正是我想要的
但是,出于营销目的,我需要让URL为网站的某些页面显示一个“父”文件夹。i、 emysite.com/parent/foo
我需要忽略url的“父”部分,不管我键入什么(想想CATCHALL),只要实际文件夹不存在该名称,然后重定向到mysite.com/page.php?id=foo
我当前的所有搜索都显示了如何忽略父项并重新路由到索引页面,但没有显示如何忽略“父项”,然后将“子项”作为变量并将其附加到id为的页面名称
救命啊
谢谢。这就是你想要的吗
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?:[^/]+/)?([^/]+)$ /page.php?id=$1 [NC,L]
上述规则可选择性地匹配父文件夹(不存在的文件夹),并从以下位置重写请求:
- example.com/fakefolder/foo
- example.com/page.php?id=foo 这就是你想要的吗
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?:[^/]+/)?([^/]+)$ /page.php?id=$1 [NC,L]
上述规则可选择性地匹配父文件夹(不存在的文件夹),并从以下位置重写请求:
- example.com/fakefolder/foo
- example.com/page.php?id=foo