dongshi1215 2017-12-05 10:12
浏览 38
已采纳

在.htaccess中使用Mod Rewrite来获得“美化”网址正常工作

I have a website which has several pages which are generated by pulling data from a database, the links to view those pages look like this.

www.mywebsite.com/article.php?id=01&title=title

and i am trying to set up a mod rewrite to get the server to display the the same webpages but using a much nicer looking url.

www.mywebsite.com/article/01/title

the line of code i have used in my .htaccess file is

RewriteRule ^article/([0-9]+)/([A-Za-z0-9-\+]+)/?$ /article.php?id=$1&title=$2 [NC,L,QSA]

now when i go back to my website and type in the following url www.mywebsite.com/article/01/title

it displays the correct content but there is no styling attached to the page at all?

my full .htaccess is as follows

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##
# Needed before any rewriting
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*(default|index)\.   (html|php|htm)\ HTTP/ [NC]
RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ http://www.example.com/$1 [R=301]
RewriteRule ^article/([0-9]+)/([A-Za-z0-9-\+]+)/?$ /article.php?id=$1&title=$2 [NC,L,QSA]

can someone please tell me what i am doing wrong? many thanks

  • 写回答

1条回答 默认 最新

  • doubu4826 2017-12-05 10:27
    关注

    That means you have probably attached your css file with a relative path not starting by a "/", change this

    <link rel="stylesheet" type="text/css" href="style.css">
    <!--- TO -->
    <link rel="stylesheet" type="text/css" href="/style.css">
    <!-- OR -->
    <link rel="stylesheet" type="text/css" href="/path/to/css/style.css">
    

    I don't think there is a problem with your rewrite rules, you just have virtual directories in your URL now you have to manage.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改