apache - 如何使用 htaccess 将以下 url 模式重写为特定的 php 文件?

标签 apache .htaccess mod-rewrite url-rewriting friendly-url

我有两个动态 url,我想在不同的 php 上重定向。问题是这两个网址都是动态的。所以我很难捕捉模式并重定向它们。 我在 google 上搜索并找到了很多示例,但所有示例 url 都包含一些要捕获的模式。

下面是我的示例 URL 以及相应的 php。

https://www.example.com/my-dynnamic-category/my-dynamic-url-id/ 应重定向到 https://www.example.com/detail.php?p=my-dynamic-url-id

https://www.example.com/my-dynamic-category/ 应重定向到 https://www.example.com/category.php?p=my-动态类别

谁能帮帮我。

我尝试使用以下规则进行详细信息.php 重定向,

RewriteRule ^\/detail/?$  /detail.php?url=$1$2 [R=301,L]

但是这个规则的问题是它只有在 url 包含单词 detail 时才有效

最佳答案

根据您显示的尝试/规则,请尝试遵循 .htaccess 文件中的规则。请确保在测试您的网址之前清除浏览器缓存。

RewriteEngine ON
##Rules for handling https://www.example.com/my-dynamic-category/ 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/?$ category.php?p=$1 [L]

##Rules for handling https://www.example.com/my-dynnamic-category/my-dynamic-url-id/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/(.*)/?$ detail.php?p=$2 [L]

关于apache - 如何使用 htaccess 将以下 url 模式重写为特定的 php 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67838358/

相关文章:

Wordpress 帖子页面获得 404 但主页有效

.htaccess RewriteRule 在我不希望它更改地址栏中的 URL

Apache 重写规则 - 防止重写的 URL 出现在浏览器 URL 栏中

apache - .htaccess 多语言网站

apache - 使用 apache 重定向而不丢失搜索排名

apache - 给现有文件夹/目录 404

php - 在 php 中攻击友好的 url

node.js - .htaccess 路由到 Node App

php - Silex微框架: Run from a subfolder

Apache Nutch 2.3.1 检查点不起作用