我想在htaccess中创建一个规则来重命名我的页面,例如:
我希望 domain.com/page1 实际打开页面 domain.com/content?p=page1 或domain.com/page2 实际上打开了页面 domain.com/content?p=page2
为此,我有一个非常简单的正则表达式:
RewriteRule (.*)$ /content.php?p=$ [L]
现在的问题是这会影响一切,甚至是样式.css或功能等文件.js,甚至图像/徽标.jpg。
所以我正在寻找的是一个正则表达式,如果它们没有点 (.) 或斜杠 (/),它将转发我的所有页面
例如:
domain.com/blog true
domain.com/home?lang=en true
domain.com/styles.css false
domain.com/image.png false
domain.com/folder/file false
谢谢!
请参阅下面的代码:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ content.php?p=$1 [L,QSA]
</IfModule>
如果请求的 URL 不是目录且不是文件,则将在下一行执行。
干杯!
这是您需要放入 .htaccess 文件中的代码:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/.]+)/?$ content.php?p=$1 [L,QSA]