URL重写多个php文件

URL重写多个php文件,php,.htaccess,mod-rewrite,rewrite,Php,.htaccess,Mod Rewrite,Rewrite,我对url重写有问题。 首先,我开始认为我在我的网页结构上犯了错误。 我制作了不止一个php文件。我认为这是错误的,因为在所有教程和示例URL中,他们都在.htaccess only index.php中使用 信息 1.我进入了导航选项卡index.php section1.php section2.php section3.php section4.php 2.在index.php中,我只有一个基本信息,不会有太大变化。 3.在每个section.php文件中,我都会重复列出文章列表。 4.每

我对url重写有问题。 首先,我开始认为我在我的网页结构上犯了错误。 我制作了不止一个php文件。我认为这是错误的,因为在所有教程和示例URL中,他们都在.htaccess only index.php中使用

信息 1.我进入了导航选项卡index.php section1.php section2.php section3.php section4.php 2.在index.php中,我只有一个基本信息,不会有太大变化。 3.在每个section.php文件中,我都会重复列出文章列表。 4.每个aricle都有一个id,当用户点击文章链接时,我用它来回送信息。 5.链接到文章“” 6.在每个section.php文件中,我都有不止一个页面。 7.现在,我的节页链接看起来像这样。 问题

问题

  • 我是否应该通过从url获取信息来更好地回显index.php页面上的所有信息
  • 如果现在我的链接看起来像这样
    ,我是否需要手动重写它们,或者这无关紧要,.htaccess将完成这项工作
  • 如果我需要重写url,它会像这样吗<代码>

  • 如何重写URL,使其看起来像www.example.com/section1/page/1和www.example.com/section1/article/607575(我知道只使用数字是不好的,我只需要了解它是如何工作的,然后我会找到它,如何用文章名替换它)


  • 如果我理解正确,您可以这样重写:

    RewriteEngine on
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    
    RewriteRule ^(.+)$ /path/to/section1.php?page=$ [QSA,L]
    
    我不太习惯修改,但应该可以。您可能还需要重写文章的规则


    如果未正确回答此问题,请参阅来自:
    http://www.example.com/section1/page/1

    收件人:
    http://www.example.com/section1.php?page=1

    RewriteRule^section(\d+)/page/(\d+)$/path/to/section$1.php?page=$2


    发件人:
    http://www.example.com/section1/article/607575

    收件人:
    http://www.example.com/section1.php?id=607575


    RewriteRule^section(\d+)/article/(\d+)$/path/to/section$1.php?id=$2

    感谢您的回复!成功了。但是为什么它不再受css的影响呢?你必须使css文件成为全局的。因此,如果您的CSS文件现在是href=“style.CSS”,那么您必须将其设置为“www.example.com/CSS/style.CSS”。除了一件事之外,它的工作方式很有魅力。实际上有两件事。当我尝试添加多个重写条件时,给我一个错误。。。我新写了这样的东西
    RewriteRule^(.+)$/path/to/section1.php?page=$[QSA,L]RewriteRule^(.+)$/path/to/section1.php?article=$[QSA,L]RewriteRule^(.+)$/path/to/section2.php?page=$[QSA,L]RewriteRule^(.+)$/path/to/section2.php?article=$[QSA,L]RewriteRule^(.+)$/path/to/section3.php?page=[QSA,L]rule^(.+)$/path/to/section3.php?article=$[QSA,L]RewriteRule^(.+)$/path/to/section4.php?page=$[QSA,L]RewriteRule^(.+)$/path/to/section4.php?article=$[QSA,L]
    您可以尝试使用Stephanie所做的方法,或者从除最后一个之外的所有方法中删除[L]。这两种方法都不起作用。我想我需要在再次调用RewriteRule之前调用RewriteCond,但这并没有按计划进行。您的示例显示了example.com/section1,但我需要/example.com/section1/page/1,在用户选择article/example.com/section1/23453之后有什么想法吗?嗨,斯蒂芬妮。谢谢你的回复。我已经挣扎了好几个小时了,不能这样做。我读了ApacheModRewrite手册,但仍然无法正确理解。我认为你的建议不起作用,因为第$1$1部分。例如,我需要:dom.com/cars.php?page=1到dom.com/cars/page/1,当用户单击文章dom.com/cars.php?id=3452到dom.com/cars/id/3452时,当我尝试使用多行代码添加dom.com/bikes.php?page=1等时,我也遇到了一个错误。重写。