Как я могу изменить URL и избежать появления "? Q ="? - PullRequest
0 голосов
/ 21 июня 2011

Я использую Ubuntu 10.10 + apache2 + php 5.33 + mysql + Drupal 7.

Моя проблема в том, что URL, используемые Drupal, похожи на следующий: http://localhost:8080/drupal72/?q=node/1.

Я хочу удалить ?q=node/1 и заменить его именем /user или /book.

Ответы [ 4 ]

5 голосов
/ 21 июня 2011

Вы хотите добавить «Чистые URL» к вашей установке drupal, см .:

http://drupal.org/getting-started/clean-urls

1 голос
/ 22 июня 2011

В Ubuntu вам нужно сделать только две вещи, чтобы чистые URL работали в первую очередь.

sudo a2enmod rewrite

Это позволяет включить модуль перезаписи apache.Второе, что вам нужно сделать, в вашем хост-файле apache по умолчанию, который находится по адресу

/ etc / apache2 / sites-available / default

В вашем файле этоскажет

AllowOverride None

сделать его

AllowOverride All

следующим образом.

DocumentRoot /var/www
<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

Затем перезапустите сервер

sudo /etc/init.d/apache2 restart

Это заставит работать чистые URL в drupal.

1 голос
/ 21 июня 2011

Включение чистых URL-адресов - это первый шаг, который вы должны сделать.То, что вы получите, это URL, которые отображаются как http://example.com/node/1 (замените example.com доменом вашего сайта на Drupal).Если вам нужен URL, похожий на http://example.com/books/clean-urls, то вам следует установить Pathauto .

Модуль Pathauto автоматически генерирует псевдонимы путей для различных типов контента (узлов, категорийпользователи), не требуя, чтобы пользователь вручную указывал псевдоним пути.Это позволяет вам получить псевдонимы, такие как /category/my-node-title.html вместо / node / 123.Псевдонимы основаны на системе шаблонов, которой может управлять администратор.

0 голосов
/ 21 июня 2011

Во-первых, вам нужно, чтобы mod_rewrite был включен для Apache, чтобы иметь возможность его использовать.Посмотрите, включена ли она в / etc / apache2 / mods-enabled, и если вы не видите там ссылки rewrite.load, вам нужно сделать следующее:

sudo a2enmod rewrite

и перезапустить Apache

sudo /etc/init.d/apache2 restart

Затем, как упомянуто kiamlaluno, вам нужно включить чистые URL-адреса и установить модули Pathauto и Token.

...