为自定义CMS重写规则


Rewrite rules for custom CMS

我正在为客户构建一个自定义CMS的过程中,我在。htaccess中重写规则时卡住了。我想把任何东西重写到页/?Pid =xxx——例如,/about变成了page/Pid =123。

我假设我遇到的问题是双重的:我暂时在子目录(/clients/afsb)中构建这个站点,并且我也有一个现有的重写规则,可以从文件扩展名中删除.php。另一个可能的问题是,我希望重写规则能够忽略任何实际存在的文件——例如,主页位于index.php(在本例中仅为/),我不希望规则影响它。同样,我还有另外两个非动态页面(例如/contact)。以下是我目前在。htaccess中尝试的内容:

<Files php.ini> 
  order allow,deny 
  deny from all 
</Files>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /clients/afsb
# Redirect to remove .php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}'.php -f 
RewriteRule ^(.*)$ $1.php
# Redirect to "page" for dynamic pages
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ page?&pid=$1
<Files ~ "'.inc$">
  Order allow,deny
  Deny from all
</Files>

我显然不太擅长。htaccess或正则表达式,所以我很感激你能给我的任何指导。谢谢!

找到了,这就是我需要的——我缺少了插入符号。谢谢你们俩的帮忙。

# Redirect to remove .php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}'.php -f 
RewriteRule ^(.*)$ $1.php
# Redirect to "page" for dynamic pages
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ page?pid=$1 [L]