我想写我的网址与字符串的格式如下: http://www.mysite.com/news/2012/10/04/article-title 但是当我在htaccess文件的网站样式使用重写规则不正常工作。我有这个问题:什么是最好的方式来做到这一点在PHP? 以前我在asp.net白色重写模块中这样做,但现在我不能这样做,我已经搜索了很多次,阅读了很多文章,但仍然有这个问题.... 非常感谢写干净的URL在PHP
回答
使用一个入口点(可能是最好的,如果它带有特定扩展名结尾检查完成)包含所需地址的GET变量。现在,您可以决定如何在PHP中进行路由(使用includes),其中控制更容易。此外,您应该使用绝对路径指向您的样式,或者使用PHP变量来包含样式的绝对路径。
以上.htaccess
确保如果文件存在,它不会重写URL。 (2-3行)。
就个人而言,我使用绝对路径(或至少相对于根)在我的样式表和脚本时,把:
<link rel="stylesheet" href="/css/styles.css" />
如果不为你工作,那么你可能重写你的CSS路径,以及。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?route=$1 [L]
这样,所有的请求都将被路由到索引页,具有:根据需要排除的文件
好点 - 相对于根有很大帮助。我通常将样式/ JS文件/图像保存在“数据”文件夹中,这样我就可以将其排除在任何重写之外。似乎比排除某些扩展更容易,因为您可以将任何不想重写的内容(包括PHP和HTML)放在数据文件夹中。 –
我可以这样做吗?例如,我可以将我的CSS,js,img文件保存到额外的文件夹中,并从重写中排除该文件夹,但是如何? –
如果您的规则设置正确,但之后您的CSS格式不见了,这意味着您的CSS文件的相对路径现在不正确。
你可能会使用这样的事情现在:
<link rel="stylesheet" href="css/styles.css" />
更改它以这样的:
<link rel="stylesheet" href="/css/styles.css" />
我改变了css文件路径,但它的剂量工作 –
我使用的解决方案是基本的HTML标签,挑选出图像和样式表。
请务必使用:RewriteCond %{REQUEST_FILENAME} !-f
至少 - 也许可以让它更安全,所以直接路径仍然可以。
我有这条线在我的htaccess文件,但仍然有问题\ –
- 1. 干净的URL和PHP
- 2. PHP $ _GET不干净的URL
- 3. 如何有干净的URL在PHP
- 4. 简单的nginx重写干净的URL
- 5. 现代重写URL干净的
- 6. .htacess - 写一个干净的URL
- 7. PHP中没有mod_rewrite的干净URL
- 8. PHP和编写干净的代码
- 9. 干净的URL htaccess的
- 10. 干净的URL与htaccess
- 11. 干净的URL使用mod_rewirte
- 12. Rails 3和干净的URL
- 13. Tomcat,Groovy和干净的URL
- 14. 动态和干净的URL
- 15. Opencart - >干净的URL
- 16. 改写2 PHP变量干净网址
- 17. 用动态URL重写表单提交到干净的URL
- 18. URL重写删除“和”有干净的搜索URL
- 19. .Htaccess URL重写 - 干净的URL不起作用
- 20. 如何让浏览器在重写时显示干净的URL?
- 21. 干净的URL,然后打印在javascript
- 22. 干净的HTML使用PHP
- 23. PHP的.htaccess干净网址
- 24. 在html中编写干净的代码
- 25. 重写旧的URL到新的,干净的
- 26. 错误500或重写规则得到干净的URL
- 27. 干净的URL Drupal的库2
- 28. 使干净的URL与htaccess的
- 29. mod_rewrite的,以避免干净的URL
- 30. htaccess文件,使干净的URL
当我使用这个htaccess代码时,首先我的样式工作正常,但是当我去其他网址的时候,例如:www.mysite.com/test/我的样式不见了,我尝试了css路径,在这种情况下,我将css路径更改为:href =“../ css/main.css”,我的风格正常工作! –
如何定义一个变量来修复我的CSS和JS路径? –
我使用这段代码解决了这个问题:define('ROOT_DIR',dirname(__ FILE__)); \t define('ROOT_URL',substr($ _ SERVER ['PHP_SELF'],0, - (strlen($ _ SERVER ['SCRIPT_FILENAME']) - strlen(ROOT_DIR)))); –