hyt*_*omo 7 php regex apache .htaccess mod-rewrite
这是我到现在为止所尝试的:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule (.*) $1.php [L]
RewriteCond %{QUERY_STRING} ^id=([0-9]{1})$
RewriteRule ^article\.php$ /article/%1 [L]
Run Code Online (Sandbox Code Playgroud)
基本上,第一组规则将URL从something.php转换为某些内容.
第二组规则应该将其中包含article.php?id = NUMBER的任何内容替换为/ article/NUMBER.
Apache报道:
AH00124: Request exceeded the limit of 10 internal redirects due to probable
configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary.
Run Code Online (Sandbox Code Playgroud)
The second set of rules is supposed to replace anything that has article.php?id=NUMBER in it into /article/NUMBER.
我相信你已经颠倒了规则。
试试这个代码:
RewriteEngine On
RewriteBase /mellori/
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} /article\.php\?id=([^\s&]+) [NC]
RewriteRule ^ article/%1? [R=302,L]
# internally rewrites /article/123 to article.php?id=123
RewriteRule ^article/([0-9]+)$ article.php?id=$1 [L,NC,QSA]
# PHP hiding rule
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1511 次 |
| 最近记录: |