.htaccess переписать URL [помочь с правилом] - PullRequest
1 голос
/ 11 июля 2009

Я пытаюсь переписать URL этого: http://www.foo.com/bar/baz

до

index.php? Д = $ 1 & d = Баз

Где bar не фиксированное значение, а baz.

  RewriteRule ^(.*)\/baz$ index.php?q=$1&d=baz [L,QSA]
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

То, что у меня есть выше вроде работает, но, к сожалению, нарушает все включения на сайте (css / javascript), но странным образом все страницы работают: /

Это установка drupal (так что вторая строка должна остаться).

UPDATE

Это может помочь на самом деле, я забыл включить

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  **RewriteRule ^(.*)/details index.php?q=$1&details=true [L,QSA]**
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Кажется, он правильно выполняет мою перезапись, единственная проблема в том, что теперь он игнорирует другие условные операторы, т. Е. Он все еще пытается переписать существующие файлы (т.е. css, js), когда нужно их избежать.

сайт в порядке без моей строки (тот, что со звездами), но с ним работают переменные и страницы, но статические файлы, такие как css и т. Д., Также переписываются ... нужно прекратить это!

Заранее спасибо.

Шади

Ответы [ 2 ]

1 голос
/ 11 июля 2009

Условия распространяются только на первое правило, следующее сразу после. Поэтому попробуйте продублировать строки условий.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/details index.php?q=$1&details=true [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
0 голосов
/ 11 июля 2009
  RewriteRule ^(.*)/details index.php?q=$1&details=true [L,QSA]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Это то, что, наконец, сработало. это просто потребовало перестановки правил ...

...