Altering a URL alias without using a module Is there a way to alter a URL alias without using a module? Somebody told me to write a record into database table, but I don't know how to do it.
Drupal allows to add (and alter) a path alias using the user interface. Generally, there is no reason to alter a database table directly, especially when a Drupal core module allows to do what you are trying to achieve through an administrative page.

If you need to do it from code, then you can use path_set_alias() function as pointed out from tim.plunkett. Differently, Drupal user interface is preferable for such tasks.

The query used by path_set_alias() to update an existing alias is similar to the following (I simplified the query by removing the reference to the language field):

UPDATE {url_alias} SET src = '&lt;alias&gt;', dst = '&lt;destination&gt;' WHERE dst = '&lt;old_destination&gt;'


If your Drupal site is using table prefixes (e.g. dr6_) then you need to replace {url_alias} with dr6_url_alias; if your Drupal site is not using table prefixes, then replace {url_alias} with url_alias.
Replace also &lt;alias&gt; in the query I wrote with the path alias, &lt;destination&gt; with the path to alias, and &lt;old_destination&gt; with the old path (which can also be the same value used for &lt;destination&gt;).

If there isn't a path alias, then the query becomes the following one:

INSERT INTO {url_alias} (src, dst) VALUES ('&lt;alias&gt;', '&lt;destination&gt;')


&lt;alias&gt; and &lt;destination&gt; have the same meaning I reported before.