php - 在部署之前验证 .htaccess

标签 php apache .htaccess seo

为了获得更好的 SEO 和更清晰的 URL,我倾向于将某些 RewriteRules 直接导出到 .htaccess(例如,RewriteRule ^The_North_Face(.*)$ index.php?a=brands&id=27&extras=%1 [NC,L] 等等)。它比那复杂得多,但今天我发现该文件仅与其尝试使用的数据一样好。站点所有者设法放置了空的类别名称/URL 和一些未转义的字符,这些字符导致了严重的内部服务器错误,阻止了所有站点访问(包括重建它的工具)。

我意识到这里最好的防御可能是良好的培训 + CMS 级别的故障保护。遗憾的是,这是一个名为 CubeCart 的第 3 方解决方案,我暂时无法深入研究,SEO 解决方案应该是独立的,并且只使用 CubeCart 数据。

显然,我必须添加一些与品牌/类别/着陆页名称相关的检查。即便如此,我还是非常想在替换“实时”文件之前解析/验证新建的 .htaccess,以避免与语法有关的可能问题。是否有任何语法验证器/方法来针对新的 .htaccess 测试 Apache?

我也可以考虑把它部署到一个子目录下,然后用curl GET几个请求作为测试,还有什么办法吗?

最佳答案

您可以使用像 WordPress 那样的东西:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

... 然后在 index.php 文件中根据您网站的 URI 逻辑解析 $_SERVER["REDIRECT_URL"]。通过这种方式,您可以更轻松地通过 PHP 自动处理任何数据库变量,例如品牌或类别,而无需在每次内容更改时编辑 .htaccess 文件。

关于php - 在部署之前验证 .htaccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2407865/

相关文章:

javascript - 使用 jquery 在 php cURL 中搜索

Facebook - Curl 错误 SSL_CACERT SSL 证书

java - 适用于高流量网站的 Play Framework、Java、Apache、PostgreSQL、JPA 和 Hibernate

apache - 创建 .htaccess 文件(Ubuntu Server 12.04 w/Apache2)

php - ANDROID:执行 doInBackground 时发生错误

PHP - 如果下拉选择=某事

php - 在多数组上使用 array_chunk

php - 检测 Mac 用户 - htaccess

.htaccess - htaccess 重写规则不起作用

apache - 从 www 重定向到非 www