我正在使用标准片段将“myfile”的请求路由到“myfile.php”,使用 Apache:
# Add .php-extension to base URLS using rewrite (so links can omit it)
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
</IfModule>
它有效。当我在浏览器中键入“mydomain.com/myfile”时,我看到页面加载,URL 栏中没有“.php”。伟大的。
但现在也很清楚,我仍然可以继续在旧位置“mydomain.com/myfile.php”查看页面。并且有一些问题:
1) SEO:我正在稀释链接汁,将内容拆分为两个 URL,一个带有“.php”,一个没有。不重要,但是嘿...
2) 世界上任何现有的指向该站点的公共链接将继续看到未经美化的 URL。叶赫。
3) 最重要的是,我所有现有的内部导航链接将继续指向未经美化的 URL。破坏者。
我的头在这一点上开始旋转。我想我想要的是在服务器上将非“.PHP”版本重写为“.PHP”,但还将带有扩展名的旧链接重定向到无扩展名的内容。是否有解决这个难题的标准“最佳实践”方式?应该通过我的导航并从链接中删除所有“.php”文件扩展名以一劳永逸地摆脱扩展名吗?似乎是错误的路径,但它是有可能发生的 :) 更严重的是,在 LAMP 堆栈中保存没有扩展名的 PHP 文件是否安全?(我什至从未尝试过,因为太习惯于避免它)。如何完成向漂亮 URL 的过渡?
提前感谢您的任何指导。