这是我的工作方式:
^([^/\.]+)/?$
(第一个
路径中的段)struct.php?page=$1
在索引页面(struct.php)中我请求页面的内容 ($ _GET ['page'])如果存在:
$content = @file_get_contents("pages/$_GET[page]/.content")
'not_found/.content'
这是有效的,但我想在脚本中保持简单,并使用mod_rewrite的强大功能来仅请求存在的页面。
以下是我想做的事情:
^([^/\.]+)/?$
(第一个
路径中的段).content
文件后将其重定向到索引页 :struct.php?page=$1
这是我的尝试:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond pages/$1/.content -f RewriteRule ^([^/\.]+)/?$ struct.php?page=$1 [L] </IfModule>
注意:我正在使用.htaccess
文件
答案 0 :(得分:1)
这是我的解决方案:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^([^/\.]+)/?
RewriteCond %{DOCUMENT_ROOT}/%1/.content -f
RewriteRule ^([^/\.]+)/? struct.php?page=$1 [PT,QSA,L]
答案 1 :(得分:0)
您是否尝试过以下操作?
RewriteEngine on
RewriteCond %{QUERY_STRING} ^([^/\.]+)/?
RewriteCond /absolute/path/pages/$1/.content -f
RewriteRule ^.*$ struct.php?page=$1 [PT,QSA,L]
我没有测试过这个,所以我不确定它是否有效,但你应该试一试。
请记住将/ absolute / path /更改为pages文件夹的绝对路径。