如何使用 htaccess 重命名页面和删除扩展名,而不会影响 css 或 js 外部文件



我想在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]

相关内容

  • 没有找到相关文章

最新更新