php - 在动态 PHP 网站中实现 Mod Rewrite

标签 php mysql apache .htaccess mod-rewrite

我用 PHP 建立了一个网站,它从 csv 文件中获取汽车,通过 cron 将它们导入数据库。这些汽车显示在 showroom.php by ?id=slugname-from-database-row 的文件中,该 slug 是在导入时创建的,但是我确实缺少使重写工作的知识,因为它似乎与 news_content.php?id=slugname-from-database-row 冲突,后者显示最新新闻,并且与 showroom.php 的工作方式完全相同。

<IfModule mod_rewrite.c>
Options +FollowSymLinks
Options -Multiviews 
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f
#RewriteRule ^([^/]+)/?$ news_content.php?id=$1 [L]
RewriteRule ^([^/]+)/?$ showroom.php?id=$1 [L]
<IfModule>

只有页面或其他作品,如果我像 .htaccess 中那样注释掉上面的行,重写在 showroom.php 上可以正常工作:

http://127.0.0.1/showroom.php?id=604010047-honda-cr-z-3-door-15-ima-sport-hybrid-manual

被重写为:

http://127.0.0.1/604010047-honda-cr-z-3-door-15-ima-sport-hybrid-manual

如果在 .htaccess 中取消注释上述与 news_content.php 相关的行,则 showroom.php 页面将不起作用,反之亦然!

新闻页面的工作方式如上:

http://127.0.0.1/news_content.php?id=test-slug-news-item-from-database 

被重写为:

http://127.0.0.1/test-slug-news-item-from-database

这让我发疯!非常感谢任何帮助!

最佳答案

试试这个

新闻

RewriteRule ^([A-Za-z0-9_\-]+).html$ news_content.php?id=$1 [L]

展厅

RewriteRule ^([A-Za-z0-9_\-]+).htm$ showroom.php?id=$1 [L]

关于php - 在动态 PHP 网站中实现 Mod Rewrite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21551436/

相关文章:

将数据插入数据库的 PHP 脚本在执行时返回成功,但记录未插入数据库?

Apache 2.2 到 2.4 重定向太多

javascript - phonegap使用ajax提交表单数据到mysql然后换页的一些问题

php - 与 5 个第三方盒子对话的单一证书

PHP exec ('program.exe' ) 挂起网页

PHP/MySQL - 计算每个预订的总计

mysql - MySQL 工作台是否显示未提交的更改?

apache - 如何编译 libmesos.so 文件?

php - 根据另一个字段的输入使用 mysql 字段填充数据列表,而无需重新加载页面

mysql - MySQL服务器中存在的所有数据库的概述