Php mod rewrite在我的模板中不起作用

Php mod rewrite在我的模板中不起作用,php,apache,mod-rewrite,Php,Apache,Mod Rewrite,我有一个htm/css模板,其中似乎包含mod_重写规则: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} gallery\_remote2\.php

我有一个htm/css模板,其中似乎包含mod_重写规则:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} gallery\_remote2\.php
    RewriteCond %{REQUEST_URI} !/main\.php$
    RewriteRule .   -   [L]

    RewriteCond %{THE_REQUEST} /d/([0-9]+)-([0-9]+)/([^/?]+)(\?.|\ .)
    RewriteCond %{REQUEST_URI} !/main\.php$
    RewriteRule .   /main.php?g2_view=core.DownloadItem&g2_itemId=%1&g2_serialNumber=%2&g2_fileName=%3   [QSA,L]
    RewriteCond %{THE_REQUEST} /v/([^?]+)(\?.|\ .)
    RewriteCond %{REQUEST_URI} !/main\.php$

    RewriteRule .   /main.php?g2_path=%1   [QSA,L]

    RewriteRule ^presentation/([0-9]+)$ /presentation.php?id=$1


    ErrorDocument 404 /notavailable.php
</IfModule>

重新启动发动机
重写基/
RewriteCond%{REQUEST_FILENAME}-f[或]
RewriteCond%{REQUEST_FILENAME}-d[或]
重写cond%{REQUEST_FILENAME}gallery\\u remote2\.php
重写cond%{REQUEST_URI}/main\.php$
重写规则[L]
重写第二个%{u请求}/d/([0-9]+)-([0-9]+)/([^/?]+)(\?。\124;\。)
重写cond%{REQUEST_URI}/main\.php$
重写规则/main.php?g2_view=core.DownloadItem&g2_itemId=%1&g2_serialNumber=%2&g2_fileName=%3[QSA,L]
重写cond%{u请求}/v/([^?]+)(\?。\124;\)
重写cond%{REQUEST_URI}/main\.php$
重写规则/main.php?g2_路径=%1[QSA,L]
重写规则^presentation/([0-9]+)$/presentation.php?id=$1
ErrorDocument 404/notavailable.php
这部分是我的:
RewriteRule^presentation/([0-9]+)$/presentation.php?id=$1

我现在的url是www.domain.com/presentation.php?id=1

我想要www.domain.com/presentation/1/

我的规则不起作用,我想知道我的规则是错误的还是与已有的规则冲突

编辑:

好的,我成功了:
RewriteRule^presentation/([0-9]+)$/presentation.php?id=$1[L]

因此,www.domain.com/presentation/2我想要一个结尾没有斜杠或斜杠的规则。。。但是我们以后不能处理这个问题


现在的问题是,尽管正在检索id,但网站的行为就像有一个表示目录一样,因此所有相关路径(如包含标题)都不起作用。实际上,我认为css链接已断开。

事实上,如果您确实希望更改浏览器中的URL,请定义如下重写规则:

RewriteRule ^presentation/([0-9]+)$ /presentation.php?id=$1 [R=301,L]
这仅仅意味着使用新的URL将HTTP状态301返回到浏览器


这样,浏览器使用相对路径无法找到图像、css、图像等的问题也将得到解决。

mod_rewrite不会更改浏览器中显示的URL。您必须调整应用程序以输出更好的URL。重写规则仅更改Web服务器内部调度。-如果您的规则不起作用,请在其他规则之前将其向上移动。我知道它不会将www.domain.com/presentation.php?id=1更改为www.domain.com/presentation/1/,但键入www.domain.com/presentation/1/会将其指向正确的页面吗?