有没有什么方法可以更有效地编辑.htaccess?

时间:2015-02-10 15:47:29

标签: php apache .htaccess

我一直在向网站添加产品页面,每个产品页面集包含page.php文件,另外3个ajax文件(a-page1.phpa-page2.php

等每个产品页面:

    例如,
  1. 被称为:page1.phppage2.php
  2. 包含3个指向ajax文件的链接:
  3. 一个。 folder/page1/subfolder-a/

    folder/page1/subfolder-b/

    ℃。 folder/page1/subfolder-c/

    (一切都是不断的数字)。

    目前,每次我手动编辑.htaccees以使链接更漂亮:

    RewriteRule ^nice-name-for-page1/?$ page1.php [L]
    
    RewriteRule ^folder/page1/subfolder-a/?$ /jump/a-page1.php [L]
    RewriteRule ^folder/page1/subfolder-b/?$ /jump/b-page1.php [L]
    RewriteRule ^folder/page1/subfolder-c/?$ /jump/c-page1.php [L]
    

    有没有办法自动化这个过程,可能有一些界面,我可以简单地输入nice-name-for-page1值,或者从PHP页面本身(规范URL)获取它,还有其他所有只需输入page1值即可准备3个链接?

2 个答案:

答案 0 :(得分:3)

也许使用捕获组,例如

RewriteRule ^folder/page(\d+)/subfolder-([^/])/?$ /jump/$2-page$1.php [L]

所以你的.htaccess文件中只需要一个条目用于所有页码和子文件夹?

答案 1 :(得分:0)

我们最近这样做了,虽然在.net中,但原则仍然是一样的。如果您愿意,我们将“单一页面”设为“详细信息/内容/产品”页面。

然后我们将数据库字段添加到表中,该表将包含所有产品详细信息,最重要的是,友好的url slug。

然后我们编写代码来查看发送到控制器的URL,然后在数据库中将其匹配。例如:

http://testbetasite.azurewebsites.net/Products/Apple-iPhone-6-Plus

代码会查找slug:

Apple-iPhone-6-Plus

在ProductSlug ==“Apple-iPhone-6-Plus”的数据库中查找,然后抓取包含图像,内容,价格等的字段并将其显示在页面中。即时友好的URL',无需访问htaccess或重写规则。

现在我们再次这样做是因为客户端将管理这个,我们希望它们能够轻松地分配自己的友好URL。

我可以帮助您在PHP中执行此操作,但如果它不是您想要的方向,我可以完全理解。请告诉我。