0

我想在 htaccess 中创建一个规则来重命名我的页面,例如:

我希望 domain.com/page1 实际上打开页面 domain.com/content?p=page1 或 domain.com/page2 实际上打开页面 domain.com/content?p=page2

为此,我有一个非常简单的正则表达式:

RewriteRule (.*)$ /content.php?p=$ [L]

现在的问题是这会影响一切,甚至是styles.css 或functions.js 等文件,甚至是images/logo.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

谢谢!

4

2 回答 2

0

这是您需要放入 .htaccess 文件中的代码:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/.]+)/?$ content.php?p=$1 [L,QSA]
于 2012-05-02T18:43:55.067 回答
0

请看下面的代码:

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteRule ^(.*)$ content.php?p=$1 [L,QSA]
</IfModule>

如果请求的 URL 不是目录也不是文件,将在下一行执行。

干杯!

于 2012-05-02T18:35:59.057 回答