我们可以为 php mysql 中的 product.php 和 blog.php 等两个不同的动态页面编写 .htaccess 吗?
Posted
技术标签:
【中文标题】我们可以为 php mysql 中的 product.php 和 blog.php 等两个不同的动态页面编写 .htaccess 吗?【英文标题】:Can we write .htaccess for two different dynamic pages like product.php & blog.php in php mysql? 【发布时间】:2021-12-01 15:35:57 【问题描述】:Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^([^/]+)/?-([^/]+)? product-details.php?pro_slug=$1&id=$2 [L,QSA]
RewriteRule ^([^/]+)/?-([^/]+)? blog-details.php?n_slug=$1&n_id=$2 [L,QSA]
这仅适用于第一个定义的页面 product-details.php。请帮忙。
我正在点击www.test.com/blog/Want-to-transfer-your-home-loan-to-another-bank
,www.test.com/product/agriculture-land-near-by-agra
第一个网址应该由 product-details 提供,第二个应该由 blog-details.php 文件提供。
【问题讨论】:
欢迎来到 SO,感谢您以代码的形式分享您的努力。您能否提一下product-details.php
应该提供哪个URL 以及blog-details.php
应该提供哪个URL?因为现在您的规则将只处理 product-details.php
文件的任何 url。
您显然可以不两次使用完全相同的模式,这根本没有意义 - 服务器应该如何知道,它应该在两种情况中的哪一种实例?
我在两个页面都使用基本网址
我是一名新开发人员,所以请建议我正确的代码。
@vijay,你需要理解我在第一条评论中问你的问题。假设您正在访问一个 URL,例如:http://test.com/test123/singh
和 http://test.com/test456/singh
,到目前为止,您当前的规则将始终仅将这些 URL 中的任何一个提供给 product-details.php 文件。那么,哪些 url 应该去产品 php,哪些应该去博客 php?如果你不能回答这个问题,那么这里是不可能的,对不起。
【参考方案1】:
根据您显示的示例,请尝试遵循 htaccess 规则文件。
确保在测试您的 URL 之前清除您的浏览器缓存。
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(blog)/([\w-]+)/?$ product-details.php?pro_slug=$1&id=$2 [NC,L,QSA]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(product)/([\w-]+)/?$ blog-details.php?n_slug=$1&n_id=$2 [NC,L,QSA]
【讨论】:
这段代码不起作用,点击 url 后没有在页面上获取动态值。 @vijay。我想在这里为您提供帮助(我们都是),如果您不向我们提供有关哪些无效和哪些有效(带有示例/示例)的信息,那么这对我们双方来说都是浪费时间,请提供更多相同的信息,我可以尝试提供帮助,干杯。 正则表达式(.*)/?$
的最后一部分将捕获可选的尾部斜杠,这可能不是本意。您需要使捕获子模式不贪婪,例如。 (.*?)/?$
或从模式中排除斜线,例如。 ([^/]+)/?$
。只需使正则表达式更加具体并省略尾部斜杠(示例中未包含该斜杠,并且可能会产生重复的内容问题),就可以避免文件系统检查,例如。 ([\w-]+)$
.
@MrWhite,谢谢先生告知,现在编辑帖子,干杯。
@vijay,您能否检查这些已编辑的规则,如果这对您有帮助,请告诉我?确保在测试 URL 之前清除浏览器缓存。以上是关于我们可以为 php mysql 中的 product.php 和 blog.php 等两个不同的动态页面编写 .htaccess 吗?的主要内容,如果未能解决你的问题,请参考以下文章